Mo *_* B. 39 c# authentication jwt asp.net-core
将软件包Microsoft.AspNetCore.Authentication.JwtBearer
从版本 3.1.14 更新到 6.0.1 后,身份验证请求失败,并显示 401 Unauthorized invalid token
。
新的软件包版本需要更改哪些内容?
Mo *_* B. 81
这似乎是一个错误。添加事件处理程序 ( JwtBearerEvents
),故障可以被识别为MissingMethodException
:
Method not found: 'Void Microsoft.IdentityModel.Tokens.InternalValidators.ValidateLifetimeAndIssuerAfterSignatureNotValidatedJwt(Microsoft.IdentityModel.Tokens.SecurityToken, System.Nullable`1<System.DateTime>, System.Nullable`1<System.DateTime>, System.String, Microsoft.IdentityModel.Tokens.TokenValidationParameters, System.Text.StringBuilder)'.
Run Code Online (Sandbox Code Playgroud)
带有堆栈跟踪
at System.IdentityModel.Tokens.Jwt.JwtSecurityTokenHandler.ValidateSignature(String token, TokenValidationParameters validationParameters)
at System.IdentityModel.Tokens.Jwt.JwtSecurityTokenHandler.ValidateToken(String token, TokenValidationParameters validationParameters, SecurityToken& validatedToken)
at Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerHandler.HandleAuthenticateAsync()",
Run Code Online (Sandbox Code Playgroud)
只需添加当前版本即可System.IdentityModel.Tokens.Jwt
解决问题。
更新:另请注意下面@Rubenisme 的评论。
小智 13
虽然我猜你找到了正确的解决方案,但我认为我的答案可能对某些问题有所帮助。
在花了一整天的时间调查同样的问题并没有找到解决方案后,我决定升级这些库以匹配相同的版本:6.16.0
(2022年3月23日)
Microsoft.IdentityModel.JsonWebTokens
Microsoft.IdentityModel.Logging
Microsoft.IdentityModel.Protocols
Microsoft.IdentityModel.Protocols.OpenIdConnect
Microsoft.IdentityModel.Tokens
然后问题就消失了。