首页 新闻 会员 周边 捐助

System.IdentityModel.Tokens.Jwt 版本不同引起的 oauth token 验证失败

0
悬赏园豆:30 [已解决问题] 解决于 2025-09-18 12:57

出问题之前,oauth token 验证正常的时候,基于 IdentityServer 实现的 Authorization Server 项目引用的 System.IdentityModel.Tokens.Jwt 版本是 8.9.0

<PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="8.9.0" />

api server 项目(Resource Server)引用的 System.IdentityModel.Tokens.Jwt 版本是 7.3.0

<PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="7.3.0" />

后来,api server 项目更新了一个 nuget 包,这个 nuget 包引用的 System.IdentityModel.Tokens.Jwt 版本是 8.2.1,根据 nuget 包引用机制, api server 被强制使用这个版本

<PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="8.2.1" />

这时 oauth token 验证就失败了,出现 401 Unauthorized 错误

请问如何解决这个问题?

问题补充:

将 Authorization Server 项目与 api server 都更新至最新版 System.IdentityModel.Tokens.Jwt 8.14.0,问题依旧

dudu的主页 dudu | 高人七级 | 园豆:24422
提问于:2025-09-18 09:08
< >
分享
最佳答案
0

找到原因了,是因为 System.IdentityModel.Tokens.JwtMicrosoft.IdentityModel.* 相关的 nuget 包版本不一致

将名称以 Microsoft.IdentityModel. 开头的 nuget 包升级至与 System.IdentityModel.Tokens.Jwt 同样的版本 8.14.0 ,问题就解决了

Screenshot 2025-09-18 at 11.51.10

dudu | 高人七级 |园豆:24422 | 2025-09-18 12:57
其他回答(1)
0

博主真厉害!

显示昵称已被占用10 | 园豆:206 (菜鸟二级) | 2025-09-18 16:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册