我正在尝试使用 AppAuth 从 Instagram 获取身份验证代码,重定向到我的服务器,并将该身份验证代码交换为自定义 Firebase 令牌。我在将数据传递给 AppAuth 并触发浏览器窗口关闭时遇到问题。
到目前为止有效的方法
- 移动应用注册自定义方案,
myscheme:/
- AppAuth 命中 Instagram 授权端点,接收有效
code
,重定向到https://myserver.com
- AppAuth 命中
https://myserver.com
,提供code
,正在等待响应 - 我的服务器访问 Instagram 令牌端点,交换
code
/etc 以获取有效token
- 我的服务器使用它
token
来铸造一个有效的Firebase token
此时 AppAuth 浏览器窗口已打开并等待来自我的服务器的响应。服务器有Firebase token
. 所需的下一步是将此令牌提供给 AppAuth 并让 AppAuth 关闭浏览器窗口并完成该过程。
我试过的:
- 返回重定向到
myscheme:/instagram?token=Firebase token
这将关闭 AppAuth 浏览器窗口,但该过程未完成,因此 AppAuth 不返回任何结果。即使浏览器窗口关闭,它也会继续等待。
- 设置自定义方案侦听器并重定向到
myscheme:/instagram?token=Firebase token
这与 1 具有相同的结果。但是自定义方案侦听器不会捕获此事件,即使捕获了,我也无法取消 AppAuth 进程。这充其量感觉很hacky。
进一步提炼问题:
AppAuth 需要什么来关闭浏览器窗口并完成握手?它在寻找什么?