出问题之前,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,问题依旧
找到原因了,是因为 System.IdentityModel.Tokens.Jwt 与 Microsoft.IdentityModel.* 相关的 nuget 包版本不一致
将名称以 Microsoft.IdentityModel. 开头的 nuget 包升级至与 System.IdentityModel.Tokens.Jwt 同样的版本 8.14.0 ,问题就解决了

博主真厉害!