【发布时间】:2015-07-05 12:09:56
【问题描述】:
我正在尝试为我的 Web 应用程序构建基于会话的身份验证。我有以下身份验证功能:
function authenticate(req, res) {
var body = req.body;
getAuthUser(body.username, function (err, result) {
if (hash(body.password) != result.password) {
// invalid pass
return;
}
req.session['user'] = result;
res.redirect('/logged/panel');
console.log(req.session); // 'user' session is displayed here
});
}
我还有一个中间件,可确保用户在访问安全内容时通过身份验证:
function validateRequest(req, res, next) {
console.log(req.session); // 'user' session is not displayed here
(req.session.user) ? next() : res.redirect('/login');
}
问题是我的中间件没有看到authenticate 函数存储的变量。提前谢谢你。
编辑:
这就是我使用中间件的方式:
router.use(validateRequest);
【问题讨论】:
-
这个答案可能对你有帮助stackoverflow.com/questions/23260676/…
-
@VladMatvei 您在哪里以及如何将
validateRequest注册为中间件? -
添加了我将中间件链接到我的路由的代码行
标签: javascript node.js express express-session