6

我正在开发一个 API AI 代理,并尝试实现帐户链接功能。oauth2-codeflow上的文档非常有用,我可以创建我的 oauth 流程并在Google Playground 中进行测试。到这里为止一切正常。

但是当我尝试在网络模拟器中对其进行测试时,我不断收到“看起来您的代理帐户尚未链接”。我已经按照调试 URL 进行了登录和授权步骤。

根据这个SO Question:我应该期望浏览器被重定向到https://www.google.com/?result_code=SUCCESS&result_message=Accounts+now+linked,但是我的浏览器总是被重定向到https://www.google.co.in/?gws_rd=cr&ei=QDOEWfCAPMHA0gSUvJj4Ag并且在代理中我仍然收到accounts not linked消息。

我可以看到 Google 能够使用 grantType:authorization_code 调用我的令牌端点,并且我的服务响应如下所述:

POST for /myendpoint/tokens has begun for: grantType:authorization_code  clientId:google-clientid...8

我的服务响应是:

{
  "token_type":"bearer",
  "access_token":"ab092868.....e804bcac",
  "refresh_token":"e11e6d3054883...b30",
  "expires_in":3600
}

我已经完成了SO Question中的建议,但我的回复没有其他参数。简单明了

我通过带有以下代码的 nodejs 应用程序发送上述响应:

    res.setHeader('Cache-Control', 'no-store');
    res.setHeader('Pragma', 'no-cache');
    res.setHeader('Content-Type', 'application/json;charset=UTF-8');
    res.send(JSON.stringify(respObj)); 

我现在真的很震惊,找不到出路!请帮忙。

4

2 回答 2

2

正如通过电子邮件指出的那样,您似乎没有重定向到与在登录流程期间提供给您的授权端点的 redirect_uri 参数相同的 URL。我将研究改进围绕此错误的消息传递。

于 2017-08-10T19:22:09.243 回答
2

我被重定向到相同的 gws_rd=cr&ei 网址,这是因为我们不在美国开发。尝试通过 VPN 到西雅图,然后它工作并使用 result_code=SUCCESS 重定向到 google.com 主页。我认为谷歌在这个过程中的某个地方进行了区域封锁。

于 2017-08-22T18:00:17.870 回答