瀏覽代碼

logout works, some cleanup

master
mort 8 年之前
父節點
當前提交
309d73f669

+ 12
- 0
lib/context.js 查看文件



setStatus: function(code) { setStatus: function(code) {
this.statusCode = code; this.statusCode = code;
},

login: function(username, id) {
this.session.loggedIn = true;
this.session.username = username;
this.session.userId = id;
},

logout: function() {
this.session.loggedIn = false;
delete this.session.username;
delete this.session.userId;
} }
} }

+ 2
- 1
server.js 查看文件

"/api/image_create": "api/image_create.node.js", "/api/image_create": "api/image_create.node.js",
"/api/collection_create": "api/collection_create.node.js", "/api/collection_create": "api/collection_create.node.js",
"/api/account_create": "api/account_create.node.js", "/api/account_create": "api/account_create.node.js",
"/api/account_login": "api/account_login.node.js"
"/api/account_login": "api/account_login.node.js",
"/api/account_logout": "api/account_logout.node.js"
} }


var loaded = loader.load(endpoints, conf); var loaded = loader.load(endpoints, conf);

+ 1
- 1
templates/navbar-login.html 查看文件

</div> </div>
<div class="submit-container"> <div class="submit-container">
<button type="submit" class="btn btn-default">Log In</button> <button type="submit" class="btn btn-default">Log In</button>
<a class="btn btn-default register" href="/register">Register</a>
<a class="register" href="/register">Register</a>
</div> </div>
</form> </form>
</li></ul> </li></ul>

+ 1
- 3
web/api/account_create.node.js 查看文件

if (err) if (err)
return ctx.fail(err); return ctx.fail(err);


ctx.session.loggedIn = true;
ctx.session.userId = res.rows[0].id;
ctx.session.username = ctx.postData.username;
ctx.login(ctx.postData.username, res.rows[0].id);


ctx.succeed({ ctx.succeed({
id: res.rows[0].id id: res.rows[0].id

+ 1
- 3
web/api/account_login.node.js 查看文件



var user = res.rows[0]; var user = res.rows[0];


ctx.session.loggedIn = true;
ctx.session.userId = user.id;
ctx.session.username = user.username;
ctx.login(user.username, user.id);


if (!user) if (!user)
return ctx.fail("Wrong username or password."); return ctx.fail("Wrong username or password.");

+ 0
- 47
web/api/account_logout.js 查看文件

var scrypt = require("scrypt");

module.exports = function(ctx) {
ctx.getPostData(function(err, data) {
if (err)
return ctx.fail(err);

if (!data.username || !data.password)
return ctx.fail("You must provide a username and a password.");

ctx.db.query(
"SELECT id, username, pass_hash "+
"FROM users "+
"WHERE username=$1",
[data.username],
queryCallback
);
});

function queryCallback(err, res) {
if (err)
return ctx.fail(err);

var user = res.rows[0];

ctx.session.loggedIn = true;
ctx.session.userId = user.id;
ctx.session.username = user.username;

if (!user)
return ctx.fail("Wrong username or password.");

scrypt.verify(
new Buffer(user.pass_hash, "hex"),
new Buffer(ctx.postData.data.password),
function(err, success) {
if (success) {
ctx.succeed({
id: user.id
})
} else {
ctx.fail("Wrong username or password.");
}
}
);
}
}

+ 6
- 0
web/api/account_logout.node.js 查看文件

var scrypt = require("scrypt");

module.exports = function(ctx) {
ctx.logout();
ctx.succeed();
}

Loading…
取消
儲存