首页 > 解决方案 > Expo AuthSession 只有一半工作......将获取代码但在获得令牌后不会重定向

问题描述

您好,我正在 Expo 中构建一个测试应用程序并尝试登录以取回令牌以在我的工作区中使用 Slack 应用程序。总而言之,我可以进行一次调用以获取代码以进一步验证并获取令牌,这又回到了我的应用程序中。但是,在第二次调用获取我的令牌时,我看到生成了令牌,但我无法将其重定向回我的应用程序。

fetchTokenAuthA = async () => {
  const redirect_uri = AuthSession.getRedirectUrl()
  const responseA = await AuthSession.startAsync({
    authUrl:
      `https://slack.com/oauth/authorize?` +
      `&client_id=${client_id}` +
      `&scope=admin` +
      `&redirect_uri=${encodeURIComponent(redirect_uri)}`
  })
  const code = responseA.params.code
  const responseB = await AuthSession.startAsync({
    authUrl:
      `https://slack.com/api/oauth.access?` +
      `&client_id=${client_id}` +
      `&client_secret=${client_secret}` +
      `&code=${encodeURIComponent(code)}` +
      `&redirect_uri=${encodeURIComponent(redirect_uri)}`
  })
  this.setState({ responseB })
}

如果我记录 responseA,我会看到包含发送到嵌套 URL 以获取令牌所需的代码的对象。所以...

responseB 启动并推送到下一个 slack auth 站点,然后我看到来自 slack 的对象的回复,这在我的屏幕上是成功的,但我被困在 slack 的网站上。如果我倒退或取消,我会得到一个状态取消对象。

不知道如何返回我在第二个 AuthSession 上得到的对象。

标签: react-nativesessionredirectoauthexpo

解决方案


推荐阅读