描述:登錄模塊提供用戶輸入用戶名以及密碼,提交驗證後跳轉至首頁。
/*跳轉至用戶登錄頁面*/
router.get('/login', function(req, res) {
//req.param('login_msg')==undefined,即打開用戶登錄頁面
//直接打開頁面是,msg置null
var msg = null;
if(req.param('login_msg') != undefined) {
msg = req.param('login_msg');
}
res.render('index', { title: '用戶登錄',
toUrl: '/login',
user: req.session.user,
msg: msg});
});
/*提交登錄信息*/
router.post('/doLogin', function(req, res) {
//用戶名是否爲空
var username = Util.trim(req.body.username);
if(username == '') {
//用戶名爲空!
return res.redirect('/login?login_msg=0');
}
//用戶口令
var password = req.body.password;
if(password != '') {
//生成口令的散列值
var md5 = crypto.createHash('md5');
password = md5.update(password).digest('base64');
}
//判斷註冊用戶是否存在
User.isExist(username, function(err, user) {
if(err) {
console.log(err);
//註冊過程中出錯!
return res.redirect('/login?login_msg=error');
}
if(!user) {
//用戶名不存在!
return res.redirect('/login?login_msg=1');
}
//比較口令是否一致
if(password != user.password) {
//用戶口令不正確!
return res.redirect('/login?login_msg=2');
}
user.loginTime = Util.getToday('yyyy-MM-dd HH:mm:ss');
user.isOnLine = true;
var updateDOC = {
userName : user.userName,
loginTime: user.loginTime,
isOnLine: user.isOnLine
};
User.update(updateDOC, function(err) {
if(err) {
console.log("登錄時產生異常:"+err);
}
});
req.session.user = user;
res.redirect('/');
});
});
以上僅作爲備忘或分享,若有錯誤請大家指正或討論!