0

我正在关注此Google 文档以使用 oauth 进行帐户链接。在令牌交换请求项中,我收到了下面的 JSON,如预期的那样:

{
   "client_id" : "*****",
   "client_secret" : "*****",
   "code" : "myauthorization_code",
   "grant_type" : "authorization_code",
   "redirect_uri" : "https://oauth-redirect.googleusercontent.com/r/****"
}

我的回答是:

{
    "access_token" : "myaccess_token",
    "expires_in" : 3600,
    "refresh_token" : "myrefresh_token",
    "token_type" : "Bearer"
}

但我在 iOS 的 Google 助理应用程序中收到“出了点问题,请稍后再试”错误。在堆栈驱动程序中,我收到错误:

SYNC: Request ID 4417600193631747637 failed with code: OPEN_AUTH_FAILURE
4

1 回答 1

1

根据您的示例,听起来您正在跳过一个步骤。帐户关联过程有两个步骤:

  1. 用户授权(用户登录其帐户)
  2. 令牌交换(服务器为授权用户返回一个令牌)

看起来您通过提供令牌直接响应了授权请求。授权请求应返回代表授权用户的唯一临时代码,该代码将传递回您的令牌交换端点以获取访问令牌。

您可以在文档中阅读有关如何实现与 OAuth 服务器的帐户链接的更多信息。


测试帐户关联

您可以使用Google OAuth Playground来验证您的帐户关联实施是否正常工作。以下是如何配置此工具以测试您的端点:

  1. 打开设置齿轮,将OAuth 端点更改为自定义
  2. 从操作控制台输入您的授权和令牌 URL
  3. 从操作控制台输入您的客户端 ID 和密码

您不会授权任何 Google API,因此对于第 1 步,您只需输入“设备”之类的内容,然后单击Authorize APIs。您可以按照步骤 2 中的流程来验证授权和令牌交换是否正常工作。如果流程中发生任何错误,该工具将报告。

于 2019-07-26T15:16:11.350 回答