Node.js Passport JWT在使用OpenID Connect ID令牌时总是返回401 unauthorized

Node.js Passport JWT在使用OpenID Connect ID令牌时总是返回401 unauthorized,node.js,express,jwt,passport.js,openid-connect,Node.js,Express,Jwt,Passport.js,Openid Connect,我遵循本教程在我的express API中启用jwt身份验证。 如果我使用标准用户名/密码身份验证,我就能够使用JwtStrategy来验证我在请求头中收到的JWT令牌。签名()发生在用户id和密码上。所有这些都很好 当我试图修改此代码以验证OpenID Connect中的id_令牌(使用RS256签名的JWT令牌)时,无论发生什么情况,我都会得到401个未经授权的令牌。我尝试在JwtStrategy方法中进行调试,看起来请求甚至没有进入该函数。此id_令牌似乎比使用HS256算法签名的令牌长

我遵循本教程在我的express API中启用jwt身份验证。

如果我使用标准用户名/密码身份验证,我就能够使用JwtStrategy来验证我在请求头中收到的JWT令牌。签名()发生在用户id和密码上。所有这些都很好

当我试图修改此代码以验证OpenID Connect中的id_令牌(使用RS256签名的JWT令牌)时,无论发生什么情况,我都会得到401个未经授权的令牌。我尝试在JwtStrategy方法中进行调试,看起来请求甚至没有进入该函数。此id_令牌似乎比使用HS256算法签名的令牌长得多

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


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

这取决于您如何从客户端传递令牌并在服务器中读取令牌。只有在正确接收令牌时,请求才会进入验证函数。查看类似的帖子


这对我有用。希望它也能帮助您。

添加示例代码将有助于支持您的答案。