jos*_*lle 4 session connect node.js express
我正在尝试使用express-session和connect-redis来存储用户会话.目前,在用户登录后,我返回req.sessionID,然后每当用户想要向api的安全部分发出请求时,他/她必须提供会话ID.然后,身份验证中间件返回到redis并检查会话是否存在,如果存在,则将当前会话替换为存储在Redis中的会话.
function isLoggedIn(req, res, next){
var session_id = req.body.session_id;
if (!session_id){
res.send(401, {status: 0, message: "Not authorized"});
return;
}
console.log(req);
sessionStore.get(session_id, function(err, session){
if(err){
res.send(401, {status: 0, message: "Not authorized"});
return;
}
req.session = session;
req.sessionID = req.body.session_id;
return next();
});
}
Run Code Online (Sandbox Code Playgroud)
但由于某种原因,这个错误出现了:
/node_modules/express-session/index.js:269
req.session.touch();
^
TypeError: Object #<Object> has no method 'touch'
Run Code Online (Sandbox Code Playgroud)
我似乎无法在网上找到任何有这个错误的人,因为touch()是一个内置的功能来表达会话.请帮忙?我的快速会话版本是1.9.3.
我遇到了同样的错误.似乎如果您来自快速cookie会话,则可以设置req.session = {/* some arbitrary session object */}.显然,req.session在实例上有一些表达需求的方法.
因此,请确保您没有明确覆盖req.session代码中的任何位置.
| 归档时间: |
|
| 查看次数: |
5211 次 |
| 最近记录: |