如何禁用护照中的会话?

时间:2015-03-23 10:57:31

标签: node.js express passport.js passport-twitter

我试图在passport.js中禁用会话,但它不起作用,我仍然需要添加快速会话。

代码:

  router.get('/twitter', function(req, res, next){

  passport.authenticate('twitter', {session: false}, function(err, user, info){
    if(err){ return next(err); }

    if(user){
      var token = createToken(user);
      return res.json({token: token});
    } else {
      return res.status(401).json(info);
    }
  })(req, res, next);
});

如何在此代码中更改护照的默认会话?

2 个答案:

答案 0 :(得分:0)

这里的问题是OAuth 1.0(twitter使用的版本)需要会话。 OAuth 1.0需要每个事务“秘密”,在重定向之前交换并在重定向之后进行验证。此秘密存储在会话中,因此任何基于OAuth 1.0的策略都需要会话。

换句话说,在使用twitter策略时,您无法将会话设置为false。

答案 1 :(得分:-1)

我相信你只需使用req.logout()来注销用户;