node passport.serializeUser时失败

nodejs里使用passport登录成功后,设置session时sessionID变化了,导致设置无效
PS:环境是windows server 2012 R2,node v12.4.0(在win7和windows server 2008 R2上正常)

    passport.serializeUser(function(user, done) {
        utils.log('passport.local.serializeUser:' + JSON.stringify(user));
        done(null, user.account);
    });

    passport.deserializeUser(function(account, done) {
        utils.log('passport.local.deserializeUser:' + JSON.stringify(account));
        myDb.query(`select * from users where account=?`, [account], function (err, result) {
            if (err) {
                utils.log('[SELECT ERROR] - ' + err.message);
            } else {
                done(null, result[0]);
            }
        });
    });

图片描述

阅读 3k
1 个回答

原因已经找到了,发现前端发起post请求时没有带cookie,在fetch里添加

    credentials: 'include',

这样就可以了,至于其他电脑可以的问题,可能是浏览器自己处理了吧,Chrome70几可以直接正常访问,64还需要添加这个东西

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题