1

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

代码:

  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);
});

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

4

2 回答 2

0

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

换句话说,您不能在使用 twitter 策略时将 session 设置为 false。

于 2016-02-18T05:36:25.100 回答
-1

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

于 2015-03-23T21:25:41.970 回答