【问题标题】:req.isAuthenticated() returns false after some time the server startedreq.isAuthenticated() 在服务器启动一段时间后返回 false
【发布时间】:2014-12-15 08:38:25
【问题描述】:

我在 node js routes.js 中实现了以下功能。在首先提供任何请求之前,它会检查 isAuthenticated。

function isLoggedIn(req, res, next) {
    if (req.isAuthenticated()) {
        console.log('Session Expiry '+req.session.cookie.expires);
        console.log('Authenticated');
        return next();
    }
    console.log('Not Authenticated');
    res.redirect('/');
}

但是当我在打开页面一段时间后刷新或导航到其他页面时,它会转到索引页面而不是当前页面。我发现这是因为 req.isAuthenticated() 在页面加载一段时间后评估为 false .

为什么会变成假的?

是不是因为序列化不当

这是我的序列化和反序列化方法,我做得对吗?

passport.serializeUser(function (user, done) {
    console.log('Serializing User');
    done(null, user.id);
});

// used to deserialize the user
passport.deserializeUser(function (id, done) {
    console.log('Calling Deserlize');
    dbconn.user_findById(id, function (err, user) {//call to query DB
        console.log('Deserializing user from DB');
        done(err, user);
    });
});

它是否与 cookie 或会话有关。请帮忙

【问题讨论】:

    标签: javascript node.js express session-cookies passport.js


    【解决方案1】:

    当您在 express 中创建 cookie 中间件时,您需要设置会话超时:

    app.use(express.session({
       secret : 'your_cookie_secret',
       cookie:{
         maxAge : 360000 // one hour in millis
       }
    })
    

    【讨论】:

    • 感谢Jivings的回复,但是我已经包含了session的中间件 app.use(express.session({ secret: 'mysecret', cookie: { maxAge: 12 * 3600 * 1000 } })); 12 小时
    • 这是我的序列化和反序列化方法,我做对了吗,passport.serializeUser(function (user, done) { console.log('Serializing User'); done(null, user.id ); }); // 用于反序列化用户 passport.deserializeUser(function (id, done) { console.log('Calling Deserlize'); dbconn.user_findById(id, function (err, user) {//调用查询DB console.log ('从数据库中反序列化用户'); done(err, user); }); });
    【解决方案2】:

    对不起

    其实我的网站是用azure发布的,因为azure站点在空闲超时20分钟后重启,所以认证失败

    【讨论】:

      猜你喜欢
      • 2022-07-30
      • 2015-07-23
      • 1970-01-01
      • 1970-01-01
      • 2020-03-04
      • 2016-04-01
      • 1970-01-01
      • 2021-04-03
      • 2014-05-19
      相关资源
      最近更新 更多