首页 > 解决方案 > AppAuth 寻找什么响应来关闭浏览器窗口并完成请求?

问题描述

我正在尝试使用 AppAuth 从 Instagram 获取身份验证代码,重定向到我的服务器,并将该身份验证代码交换为自定义 Firebase 令牌。我在将数据传递给 AppAuth 并触发浏览器窗口关闭时遇到问题。

到目前为止有效的方法

  1. 移动应用注册自定义方案,myscheme:/
  2. AppAuth 命中 Instagram 授权端点,接收有效code,重定向到https://myserver.com
  3. AppAuth 命中https://myserver.com,提供code,正在等待响应
  4. 我的服务器访问 Instagram 令牌端点,交换code/etc 以获取有效token
  5. 我的服务器使用它token来铸造一个有效的Firebase token

此时 AppAuth 浏览器窗口已打开并等待来自我的服务器的响应。服务器有Firebase token. 所需的下一步是将此令牌提供给 AppAuth 并让 AppAuth 关闭浏览器窗口并完成该过程。

我试过的:

  1. 返回重定向到myscheme:/instagram?token=Firebase token

这将关闭 AppAuth 浏览器窗口,但该过程未完成,因此 AppAuth 不返回任何结果。即使浏览器窗口关闭,它也会继续等待。

  1. 设置自定义方案侦听器并重定向到myscheme:/instagram?token=Firebase token

这与 1 具有相同的结果。但是自定义方案侦听器不会捕获此事件,即使捕获了,我也无法取消 AppAuth 进程。这充其量感觉很hacky。

进一步提炼问题:

AppAuth 需要什么来关闭浏览器窗口并完成握手?它在寻找什么?

标签: oauth-2.0google-oauthappauth

解决方案


这是间歇性发生的 Android 上的 Chrome 自定义选项卡问题吗?如果是这样,可能是因为没有用户手势 - 谷歌对我们施加的恼人要求。我最近一直在写 up.son 的东西:https ://authguidance.com/2019/09/13/android-code-sample-overview/

抱歉,如果您的问题不同..


推荐阅读