使用OpenID Connect ID令牌时,Passport JWT始终返回401未授权

时间:2017-06-11 00:38:02

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

我正在按照本教程在my 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){ });

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

1 个答案:

答案 0 :(得分:0)

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

它对我有用。希望它也能帮到你。