【问题标题】:Should we renew refresh tokens along with access tokens?我们应该与访问令牌一起更新刷新令牌吗?
【发布时间】:2021-08-29 16:26:50
【问题描述】:

假设成功登录后,我们正在传递用户短期访问令牌(15 分钟)和长期刷新令牌(7 天)。

在第 7 天,用户在我们的应用程序中处理一些业务逻辑,他的刷新令牌过期。因此,如果刷新令牌过期,他将在我们的应用中进行某些业务时被注销。

那么如何避免这种情况呢? 我们是否应该以某种方式更新刷新令牌?

【问题讨论】:

    标签: authentication oauth-2.0 jwt refresh-token


    【解决方案1】:

    会话到期是您需要编写代码的标准行为,因为刷新令牌不能也不应该永远持续下去。

    如果用户让他们的浏览器在夜间运行,然后第二天早上返回应用程序,这种情况在工作设置中很常见。该逻辑通常涉及以下步骤:

    • 令牌刷新返回错误代码为“invalid_grant”的错误,应用可以检查该错误
    • 应用程序必须重定向用户以重新进行身份验证,之后他们才能继续工作
    • 在重定向之前,应用会存储用户的应用位置和当前页面状态,例如在会话存储中
    • 重定向后应用恢复位置和页面状态

    即使用户正在提交表单,这也有效。需要注意的是,您当然不应该在 UI 存储中保存诸如信用卡号之类的高安全性字段 - 因此用户需要在从登录返回后重新输入这些值。

    您可以很容易地实现这一点,就像在this sample code of mine 中一样,这可能会给您一些关于您自己的解决方案的想法。

    【讨论】:

      猜你喜欢
      • 2022-12-18
      • 1970-01-01
      • 2019-01-13
      • 1970-01-01
      • 2020-06-12
      • 1970-01-01
      • 2017-04-14
      • 2022-10-31
      • 1970-01-01
      相关资源
      最近更新 更多