我使用会话和Cookie来验证用户身份。我想检查有cookie的用户,如果是,我将设置会话变量。 基本上我做的是:
现在我想将该流程纳入模块,因此我不必将该代码粘贴到我网站的每个路线中。
我们说我已将所有代码放在位于routes/middleware/check_auth.js
的中间件路由中。
如何导出此模块,以便我可以检查我的路由页面,如果用户具有身份验证,请执行以下操作:
//routes/index.js
var check_auth = require('./middleware/check_auth');
module.exports = function(app){
app.get('/', check_auth, function(req, res){
if(variable_from_check_auth == true){
res.render('index_with_auth');
}else{
res.render('index_without_auth');
}
});
};
是的,我不确定这是正确的做法,还是只需要:
如果有人可以帮助我!
答案 0 :(得分:0)
您可以像这样简单地导出中间件(假设您使用快速会话处理程序和cookie解析器):
var userModel = require('./user');
module.exports = function check_auth(res, req, next) {
if (!res.session) {
req.send(401);
return;
}
userModel.isAuthenticated(req.session.id, function (result) {
if (!result) {
req.send(401);
return;
});
next();
});
};