【问题标题】:How to disable a session in passport?如何禁用护照中的会话?
【发布时间】:2015-03-23 10:57:31
【问题描述】:

我正在尝试禁用 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);
});

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2014-11-29
        • 2019-06-23
        • 2021-10-26
        • 2012-05-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-30
        • 2021-05-19
        相关资源
        最近更新 更多