Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 第二次刷新后忘记登录用户的Passportjs_Jquery_Node.js_Express_Passport.js - Fatal编程技术网

Jquery 第二次刷新后忘记登录用户的Passportjs

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 ) {

我拿了这个 我更改了一些内容以生成单个页面,因此我使用JQ构建了post请求:

$(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 }))