【问题标题】:Passport JWT is always returning 401 unauthorized when using OpenID Connect ID Token使用 OpenID Connect ID 令牌时,Passport JWT 总是返回 401 未授权
【发布时间】:2017-11-12 17:52:29
【问题描述】:

我正在按照本教程在我的 express API 中启用 jwt 身份验证。 https://jonathanmh.com/express-passport-json-web-token-jwt-authentication-beginners/

如果我使用标准的用户名/密码身份验证,我可以使用 JwtStrategy 来验证我在请求标头中收到的 JWT 令牌。 jwt.sign() 发生在用户 ID 和密码上。所有这些都可以正常工作。

当我尝试修改此代码以验证来自 OpenID Connect 的 id_token(使用 RS256 签名的 JWT 令牌)时,无论如何我都会得到 401 Unauthorized。我尝试在 JwtStrategy 方法中进行调试,看起来请求甚至没有进入该函数。这个 id_token 似乎比使用 HS256 算法签名的要长得多。

一个简单的 passport.authenticate 调用 app.get('/callback', passport.authenticate('jwt', { session: false }), function(req, res, next) { });

有人可以解释为什么它甚至无法识别我的令牌吗?

【问题讨论】:

    标签: node.js express jwt passport.js openid-connect


    【解决方案1】:

    这取决于您如何从客户端传递令牌并在服务器中读取它。只有正确接收到令牌,请求才会进入验证函数。查看类似的帖子https://stackoverflow.com/a/46020083/4548946

    它对我有用。希望对你也有帮助。

    【讨论】:

    • 添加示例代码将有助于支持您的回答。
    猜你喜欢
    • 2017-08-22
    • 2019-08-29
    • 2018-05-19
    • 2018-01-01
    • 2019-01-03
    • 1970-01-01
    • 2018-11-05
    • 2021-10-11
    • 2019-06-05
    相关资源
    最近更新 更多