我有SPA应用程序使用IdentityServer4 ROPC流程进行身份验证,并使用此示例https://github.com/robisim74/AngularSPAWebAPI进行访问和刷新令牌 . 我每15分钟更新一次刷新和访问令牌的refresh_token .
但是如果我重新启动IdentityServer4 app旧的refresh_tokens在重启之前发出不再有效 . 怎么解决?我怀疑我应该实现一些接口来存储发布的刷新令牌?
我有SPA应用程序使用IdentityServer4 ROPC流程进行身份验证,并使用此示例https://github.com/robisim74/AngularSPAWebAPI进行访问和刷新令牌 . 我每15分钟更新一次刷新和访问令牌的refresh_token .
但是如果我重新启动IdentityServer4 app旧的refresh_tokens在重启之前发出不再有效 . 怎么解决?我怀疑我应该实现一些接口来存储发布的刷新令牌?
1 回答
您需要使用
IPersistedGrantStore
Contract 实施持久授权 . 这会将诸如refresh_tokens之类的内容存储到已定义的持久性中 . 默认情况下,IdentityServer 4将使用InMemory持久性存储,这就是您在重新启动应用程序时不断丢失refresh_token引用的原因 .如果您打算使用refresh_tokens,那么在 生产环境 中必须有一个持久层 .