我有一个要求,只有在身份验证成功后才能创建一个 session 。
我能够使用 express 中间件创建基于 redisStore 的 session ,但它会在第一个请求到达服务器时创建 session 。
但是我如何才能在成功验证后才创建 session 。
我在谷歌上搜索了一下,找到了req.session.regenerate()
(但我发现这个线程中提到的问题如下:
Regenerate session IDs with Nodejs Connect )
但在重新生成的情况下,它也会创建一个新的,假设旧的已经创建,并且是使用相同的参数创建的。
那么有没有其他方法可以在成功验证后创建一个新的 session ID..?
最佳答案
您可能将 session 的概念与已验证 session 的概念混为一谈。
所有用户都有一个 session 是正常的 - 即使是匿名的、尚未登录的用户也是如此。这与经过身份验证的 session 之间的区别仅在于,在您的本地网络服务器上,您指定特定用户已经过身份验证。
例如,一旦您对某人进行身份验证,您可以设置:
req.session.isAuthenticated = true;
然后,在呈现页面时,您的 Controller 可以执行类似的操作
function(req, res, next) {
if (!req.session.isAuthenticated) return res.redirect('/login');
res.render('appPage');
}
关于node.js - 只有在 express 中成功验证后才创建 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14555270/