【问题标题】:How to get a new access token via refresh token using Expo Auth Session?如何使用 Expo Auth Session 通过刷新令牌获取新的访问令牌?
【发布时间】:2022-06-19 16:53:47
【问题描述】:

我正在使用 Google 进行身份验证 (expo-auth-session/providers/google)

我可以第一次成功登录并获取访问令牌和刷新令牌。刷新令牌将存储在 SecureStorage 中。

现在,当旧的访问令牌失效时,我需要使用刷新令牌来获取新的访问令牌,但 Expo 的文档并没有真正提供这部分的任何指导。我已经非常彻底地检查了他们的 API,但看不到任何可以帮助我使用刷新令牌检索新访问令牌的内容。

欢迎任何指导。

【问题讨论】:

  • 你在使用firebase吗?还是您纯粹使用 Google 进行身份验证?
  • 我纯粹是在不使用 Firebase 的情况下使用 Google Auth。我需要这个来访问用户的工作表以进行进一步处理。

标签: react-native oauth-2.0 expo


【解决方案1】:

AuthSession 库有一个专门用于刷新令牌的方法。它需要用于最初检索令牌的 clientId,因此您可以重用它,您存储的 refreshToken 以及令牌端点。

const tokenResult = await AuthSession.refreshAsync({
          clientId: "<your-client-id>>",
          refreshToken: "<your-refresh-token>",
        }, {
          tokenEndpoint: "www.googleapis.com/oauth2/v4/token",
        },
      );

由于我们使用 firebase 和 useIdTokenAuthRequest,因此我无法自己对此进行测试,因此我无法获得 refreshToken 以通过该函数运行它 - 但该方法的文档看起来很结实。

【讨论】:

  • 这太完美了!谢谢!
【解决方案2】:

您能告诉我授予您访问令牌和刷新令牌的代码吗?我的刷新令牌始终未定义

【讨论】:

    猜你喜欢
    • 2022-12-03
    • 2020-02-26
    • 2015-07-19
    • 2021-08-25
    • 2020-07-12
    • 2022-01-23
    • 2016-09-28
    • 2015-11-26
    相关资源
    最近更新 更多