oauth-2.0 - AppAuth 寻找什么响应来关闭浏览器窗口并完成请求?
问题描述
我正在尝试使用 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 需要什么来关闭浏览器窗口并完成握手?它在寻找什么?
解决方案
这是间歇性发生的 Android 上的 Chrome 自定义选项卡问题吗?如果是这样,可能是因为没有用户手势 - 谷歌对我们施加的恼人要求。我最近一直在写 up.son 的东西:https ://authguidance.com/2019/09/13/android-code-sample-overview/
抱歉,如果您的问题不同..
推荐阅读
- java - 如何将 Mono 错误与 Java 中的字符串进行比较
- python - IMAP COPY 命令在收件箱上不起作用 - Python
- flutter - flutter_inappwebview - 如何更新 URL?
- r - R中的分层循环
- openapi - 将项目作为项目中的模块移动后,打开 api swagger-ui 给出白标错误页面(404)
- python - Gekko 最优控制。如何创建多个终止目标/条件?
- javascript - 短路代替三元运算符
- haskell - 如何映射带有两个参数(而不是一个)的函数?
- nginx - Nginx 不使用返回指令请求身份验证子请求
- azure - REDIRECT_URI_MISMATCH 与 Azure AD B2C Web 应用程序(基于 Python/Flask)