gpt4 book ai didi

node.js - req.session 没有方法 'touch' ?

转载 作者:搜寻专家 更新时间:2023-10-31 22:58:31 31 4
gpt4 key购买 nike

我正在尝试使用 express-session 和 connect-redis 来存储用户 session 。目前,在用户登录后,我返回 req.sessionID 然后每当用户想要向 api 的安全部分发出请求时,他/她必须提供 session ID。身份验证中间件然后返回到 Redis 并检查 session 是否存在,如果存在,则将当前 session 替换为存储在 Redis 中的 session 。

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() 是表达 session 的内置功能。请帮忙?我的 express-session 版本是 1.9.3。

最佳答案

我遇到了同样的错误。似乎如果您来自 express cookie session ,则可以设置 req.session = {/* some arbitrary session object */>。显然,req.session在表达需求的实例上有一些方法。

因此,只需确保您没有在代码中的任何地方显式覆盖 req.session

关于node.js - req.session 没有方法 'touch' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27592423/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com