【问题标题】:Logout user after sliding refresh token lifetime expired滑动刷新令牌生存期过期后注销用户
【发布时间】:2021-10-05 03:18:25
【问题描述】:

我们将 IdentityServer4 和 oidc-client-js 库用于 Angular。 我们注意到令牌会自动更新,这很好。但是我们希望用户在 SlidingRefreshTokenLifetime 过期后退出。 我们将 AccessTokenLifetime 设置为 900(15 分钟),将 SlidingRefreshTokenLifetime 设置为 7200(2 小时)。用户应在空闲 2 小时后注销。当我们使用带有刷新令牌的连接/令牌自己向 IdentityServer 发出请求时,这在没有 oidc-client-js 的情况下工作得很好。

我们正在对带有 oidc-client-js 库的 UserManagerSettings 使用 automaticSilentRenew: true。只要 SlidingRefreshTokenLifetime 没有过期,就应该这样做。

我们怎样才能完成这种行为?

编辑:另外,如果我们在 oidc-client-js 中将 automaticSilentRenew 设置为 false,它仍然会自动刷新令牌。

【问题讨论】:

    标签: c# angular asp.net-core identityserver4 oidc-client-js


    【解决方案1】:

    我们能够完成我们想要的行为。 我们必须将 SlidingRefreshTokenLifetime 设置为 false 但也删除以下事件,即使它们的回调为空:

    addAccessTokenExpiring addAccessTokenExpired

    他们也触发了自动令牌刷新。

    然后我们在每个请求上使用我们的服务器响应来获取新令牌。我们将得到一个 401,我们可以通过以下方法处理它:Angular 4 Interceptor retry requests after token refresh

    如果刷新令牌过期,现在 signinSilent 将抛出一个 invalid_grant 异常,我们可以使用它来注销用户。

    【讨论】:

      猜你喜欢
      • 2018-02-10
      • 2019-05-31
      • 2021-05-09
      • 2017-07-08
      • 2021-07-31
      • 2018-07-30
      • 1970-01-01
      • 2020-02-20
      • 2016-02-03
      相关资源
      最近更新 更多