【发布时间】:2015-02-19 22:42:45
【问题描述】:
我正在尝试使用 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();
});
}
但由于某种原因,出现了这个错误:
/node_modules/express-session/index.js:269
req.session.touch();
^
TypeError: Object #<Object> has no method 'touch'
我似乎无法在网上找到有此错误的其他人,因为 touch() 是 express-session 的内置功能。请帮忙?我的快速会话版本是 1.9.3。
【问题讨论】:
-
我这几天遇到同样的问题。我使用的是旧版本的 express 3.x,但即使升级到 4.x,问题仍然存在
标签: node.js session express connect