【问题标题】:How do you go about refreshing a JWT token whilst iOS Swift app is closed?在 iOS Swift 应用程序关闭时如何刷新 JWT 令牌?
【发布时间】:2020-11-09 02:14:51
【问题描述】:

应用程序(例如 Snapchat/Instagram)如何在应用程序关闭后让您保持登录状态?应用关闭时,您将无法刷新关闭的过期令牌。

在使用 JWT 保持用户会话打开直到他们有效注销之前,您会采取什么方法?我不知道 Snapchat 和 Instagram 使用什么进行身份验证,但是它们都提供了保存用户名和密码的选项,因此当您注销时,您可以重新登录而无需再次输入您的详细信息。所以也许他们只是保存您的用户名和密码,并在您每次登录每个应用程序时使用?

【问题讨论】:

    标签: ios node.js swift session jwt


    【解决方案1】:

    当应用处于非活动状态时,您将无法刷新令牌。相反,您可以简单地将到期日期保存在 UserDefaults 中,当用户再次打开应用程序时,请检查到期日期是否已过,如果是则刷新令牌。

    【讨论】:

    • 如果令牌本身已过期,我将如何刷新令牌?我需要使用两个令牌吗?
    • 这取决于后端如何处理令牌刷新。发送旧令牌以生成新令牌是一种常用的模式。
    • 如果您制作自己的后端,您将如何返回刷新令牌?无论哪种方式,如果我有一个普通令牌和一个刷新令牌(将存储在安全钥匙串中),如果黑客获得了对一个令牌的访问权限,他们就可以轻松访问刷新令牌,所以我看不到无论如何有两个令牌有什么意义?
    • 钥匙串是存储令牌的安全场所。如果安全和黑客是一个大问题,您可以加密密钥以增加更多保护。尽管这些是安全或加密相关帖子中要讨论的主题。这里我们讨论的是如何在应用关闭时处理令牌刷新。
    【解决方案2】:

    例如在登录时进行身份验证

    后端将发送两种类型的令牌,一种是 jwt 令牌,其次是用于生成新令牌的令牌,您可能会从后端收到用于生成令牌的新的单独 api

    【讨论】:

      猜你喜欢
      • 2019-06-29
      • 2020-08-25
      • 2017-01-13
      • 1970-01-01
      • 2017-04-25
      • 2021-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多