我正在使用 Nodejs 和 Express。我有一个routes.js 文件定义了我的所有路线。当我尝试使用 req.session.regenerate() 时,express 会创建多个会话,其中每个会话也用于静态文件请求。
令人困惑的是 req.session.regenerate() 在 app.get('/' 路由中,从 console.log 看来它只被调用一次。但不知何故,当我查看 mongodb 会话集合时,有多个会话为一页请求创建。
基本上我想做的是,当请求登录页面时,我想创建一个新会话,以便express不会重复使用以前会话的cookie。
有什么指点吗?
exports = module.exports = function(app, passport) {
//When I uncomment this line, it shows me the number of times a request is made.
//app.all('*', function(req, res, next){console.log('Request made to server'); next();});
app.get('/', function(req, res){
if (req.isAuthenticated()){
res.redirect('./home');
}else{
req.session.regenerate(function(err) {
console.log('Regenerated');
})
res.render('./login')
}
});
将快速会话中间件放在
express.static()
中间件之后。
对于那些仍然遭受这种痛苦的人:
<link rel="manifest" href="/img/favicon/site.webmanifest">
正在加载到 .ejs 文件中
删除此行解决了问题