我为自己的行为编写了一个授权流程,用于管理与" Implicit flow"的链接。我一直在使用网络模拟器进行测试。当我尝试在网络模拟器中运行操作时,它会告诉我链接我的帐户,并提供一个URL:
我运行该URL,这就是:
效果很好,响应是一个空白页面,其网址为:" https://www.google.com/?result_code=SUCCESS&result_message=Accounts+now+linked。"
但是,我想要一个流程,允许用户确保他们已登录,并登录到他们想要链接的Google帐户
因此,我还提供了一个链接,如果他们愿意,可以将其记录下来。该链接是使用userService.createLogoutURL(thisUrl)
创建的如果他们这样做,我会向他们展示一个登录链接,使用userService.createLoginURL(thisUrl)创建
一旦他们使用不同的Google ID登录,他们就会回到原始页面,这样他们就可以再次注销或点击"链接帐户"链接。
情况是,如果他们点击"链接帐户"现在链接,EXACT相同的链接,它们会在注销之前成功运行(除了不同的ACCESS_TOKEN值)并使用其他帐户重新登录,响应是一个空白页面,其URL包含:" {{ 3}}"
有两点需要注意:
因此,它失败的唯一时间是他们登录,注销,使用其他帐户登录,然后单击以链接帐户。那是失败的时候。
帐户并不重要,只要浏览器登录到第一个帐户并且在流程中没有变化,多个不同的帐户就可以运行。
老实说,我无法想象这是怎么回事。
如果我在Google Home应用中执行此操作会更糟,因为它会返回一些错误的请求错误"页面,基本上停止工作,永久。停止/开始操作没有帮助。停止/启动Web服务并没有帮助。重新启动Android设备并没有帮助。 Google Home应用中的关联帐户已永久损坏。我能够再次使用它的唯一方法是在我的Android设备上的Chrome浏览器中使用帐户链接URL(来自网络模拟器),这似乎是"重置"一切。
答案 0 :(得分:1)
目前,我们要求通过模拟器和Google Home应用程序启动帐户关联过程的Google用户与通过Google登录选项登录的Google用户相同,如果提供的话你的auth流程的一部分。这是一项艰难的要求。
出于这个原因,我们建议您不要在帐户关联过程中提供Google注销选项。