Identityserver4 为什么不使用内存操作存储?

Identityserver4 为什么不使用内存操作存储?,identityserver4,Identityserver4,有一些建议在投入生产时替换InMemory操作存储,但这一建议的实际根源是什么 我看到了使用默认的IPersistedGrantStore的这些缺点: 无持久性:当服务器重新启动时,所有用户都必须重新登录 需要粘性会话,用户只能在其实例中刷新令牌 我还可能遇到其他问题吗?我想您可能会发现分布式服务存在更多问题,例如: 引用令牌:引用令牌应该根据从后端服务调用内省时发出它们的同一实例进行验证 后端令牌重新登录:您需要调用所有实例以确保从后端重新登录 同意:无法为用户保存同意首选项(记住同意) 刷新

有一些建议在投入生产时替换InMemory操作存储,但这一建议的实际根源是什么

我看到了使用默认的
IPersistedGrantStore
的这些缺点:

  • 无持久性:当服务器重新启动时,所有用户都必须重新登录
  • 需要粘性会话,用户只能在其实例中刷新令牌

  • 我还可能遇到其他问题吗?

    我想您可能会发现分布式服务存在更多问题,例如:

  • 引用令牌:引用令牌应该根据从后端服务调用内省时发出它们的同一实例进行验证
  • 后端令牌重新登录:您需要调用所有实例以确保从后端重新登录
  • 同意:无法为用户保存同意首选项(记住同意)
  • 刷新令牌:您不能在会话之间使用长寿命的刷新令牌,并且您的用户必须始终在场。您不能使用脱机访问

  • 为什么是6?我使用离线访问,一切正常。当然,刷新令牌会在服务器重新启动时被擦除,但没关系。我只有一个IdentityServer实例。如果您只有一个实例,那么应用程序的状态会简单得多。内存存储是一个有效的选择。但是在你的问题中你没有提到这一点,所以我认为答案应该包括应用程序被分发的可能性。