Jquery 第二次刷新后忘记登录用户的Passportjs
我拿了这个 我更改了一些内容以生成单个页面,因此我使用JQ构建了post请求:Jquery 第二次刷新后忘记登录用户的Passportjs,jquery,node.js,express,passport.js,Jquery,Node.js,Express,Passport.js,我拿了这个 我更改了一些内容以生成单个页面,因此我使用JQ构建了post请求: $(document).on('click','#submitLoginIDButton ', function (){ $.post( "/login", { "email" : $("#emailLoginID").val(), "password" : $("#passwordLoginID").val() }) .done(function( data ) {
$(document).on('click','#submitLoginIDButton ', function (){
$.post( "/login", { "email" : $("#emailLoginID").val(), "password" : $("#passwordLoginID").val() })
.done(function( data ) {
console.log(data);
});
});
将某些路线更改为以下路线:
app.get('/',
function(req, res) {
if (req.user) {
var logged = true;
} else {
var logged = false;
}
res.render('index.ejs', {
title : "No More Miss",
userStatus : logged
});
});
app.post('/login',
passport.authenticate('local-login'),
function(req, res) {
res.send({ status: 'OK', user: req.user });
});
登录有效,如果我刷新它,则表明我已登录,但在第二次刷新后,它将丢失,您知道为什么会发生这种情况吗?您是否激活了passport的会话?如果不初始化,则在刷新页面后,验证信息将丢失 发件人: 如果应用程序使用持久登录会话,则passport.session() 还必须使用中间件 请注意,启用会话支持是完全可选的,尽管它是 建议用于大多数应用程序。如果启用,请确保使用 express.session() 会话已按正确的顺序恢复
只需将
resave
属性设置为false
app.use(session({ secret: 'keyboard cat', resave: false }))
我不知道这个问题的原因是什么,但不管怎样,这是工作
请尝试在处阅读更多信息。会话已启用并初始化,与您编写的相同,并且存在文件app/routes.js中的示例中的中间件isLoggedIn。结果保持不变。正如@Waldo所提到的,一切都是一样的,但错误仍然存在。
app.use(session({ secret: 'keyboard cat', resave: false }))