express-session会话丢失:登录后无法访问受保护路由
登录成功后无法访问受保护的/chat路由,中间件检测不到用户会话
express-session配置
会话中间件代码:
app.use(session({ secret: "secret", store: store, saveUninitialized: false, resave: false, cookie: { // secure: true, maxAge: 1000 * 60 * 10, sameSite: "none" } }))
路由保护中间件
校验登录状态的中间件代码:
const user = (req, res, next) => { if(req.session.user){ console.log(`Dari middleware: ${req.session}`) next() } else { res.json({ session: req.session, message: "fail" }) } } app.use("/chat", user, (chatRouter));
问题现象
登录成功后访问/chat路由,始终返回fail,会话中无user字段。使用Postman/Insomnia测试正常,仅网页端出现该问题。
前端请求情况
登录请求已设置withCredentials: true,登录响应包含user会话,但跳转至/chat后会话丢失。
环境
- Node 18.17.0
- express-session 1.17.3
- Express 4.18.2
内容的提问来源于stack exchange,提问作者Agu
相关产品推荐
相关产品推荐

