我有一个带有 Angular2 UI 的 .NET Core 应用程序在我使用 OpenIddict 保护的 Service Fabric 集群中运行。我跟着这个例子:https://github.com/openiddict/openiddict-samples/tree/master/samples/RefreshFlow
当我只有一个无状态 .NET Core 应用程序实例时,它工作得很好。当我将实例数增加到两个时,身份验证失败并且我收到一堆 401 错误。我收到的 token 似乎只适用于该特定实例,而在另一个实例上被拒绝。
我想我明白为什么会发生这种情况,但我不知道如何解决。
任何帮助将不胜感激。
最佳答案
OpenIddict 依赖于 ASP.NET Core Data Protection stack生成和保护其授权代码、刷新 token 和访问 token (除非您明确选择 JWT 作为访问 token 格式)。
为确保可以跨实例读取这些 token ,您必须将 ASP.NET Core 数据保护配置为共享相同的 key 环。我推荐阅读 the related documentation on Microsoft's website如果您需要有关此过程的更多信息。
关于asp.net-core - OpenIddict:当两个或多个服务实例计数时出现 401 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42628862/