【发布时间】:2022-01-02 10:09:56
【问题描述】:
基本上,如果我在一个路由上声明一个会话变量,我就不能在另一个路由中访问它(未定义)。
这是我的中间件:
app.use(cors({
origin: ["http://localhost:3000"], methods: ["GET", "POST"] }));
app.use(session({
secret: process.env.SESSION_SECRET,
resave: false, saveUninitialized: false
}));
这是我的 /log-in 路线:
router.post('/api/users/auth/log-in/', async (req, res) => {
// ... user authentication logic, here 'authenticated' boolean is defined
req.session.authenticated = authenticated;
req.session.save();
if (authenticated) req.session.user = req.body.username;
res.json({"success": true, "authenticated": authenticated});
});
如果我在这条路由中记录会话变量,它工作得很好。
但是,在另一个路由中,当使用req.session.authenticated 访问时,变量返回一个undefined。
我确定我缺少一些东西,但我无法让它工作。任何帮助表示赞赏!
澄清一下,如果我从 REST 客户端执行所有这些操作(登录并检查我是否已通过身份验证),它就可以正常工作。
【问题讨论】:
标签: javascript node.js express session express-session