在 Flutter 中刷新令牌

Bil*_*ill 6 oauth dart flutter

我正在开发一个Flutter应用程序,我正在使用OAuth2进行身份验证。如果您未登录,则无法使用该应用程序,它仅显示登录屏幕并强制您登录。

当我登录时,我从身份验证服务器收到以下信息:

  • 访问令牌
  • 访问令牌生命周期
  • 刷新令牌
  • 刷新令牌生命周期

当访问令牌即将到期时,我想通过向身份验证服务器发送刷新令牌来获取新令牌。

我将如何实现刷新令牌机制?我想每次在访问令牌过期之前更新访问令牌,即使用户没有使用该应用程序(它已关闭)。如果用户每次打开应用程序都需要登录,那将是非常糟糕的用户体验。为了避免这种情况,我想在后台刷新令牌。

我如何才能在 Android 和 iOS 上实现这一点?最好不要为每个平台编写任何本机代码。

Mic*_*ner 2

您可以Future.delayed在过期前刷新令牌。

您还可以通过后台进程在后台运行这部分代码,但您的应用程序必须在后台运行。

  • 我已经考虑过您的问题的替代方案。您还可以处理 401 http 错误(令牌已过期),使用刷新令牌请求新令牌,然后重试您的请求。它消耗的电池更少,并且在手机关闭时也能处理手机壳。 (7认同)