后台开发,最近在研究某个服务在移动端应用的适配问题,就做了一个简单的 demo ,这个 demo 现在就做了一个最简单的操作---加载一个登录的链接,这个链接集成了许多三方登录的服务,但是遇到一些奇怪的问题。
1 、假如在微信通过对话框的形式打开这个链接,选择 qq 登录,可以正常唤起 qq 并且重定向回微信。但是在 demo 唤起 qq 之后,登录成功被重定向回系统浏览器。现在是不是意味着要做什么拦截操作,将某重定向 URL 注册到这个 demo ,当 qq 登录授权成功的时候,回调到这个 demo ( deeplink ?或者自定义协议?)
2 、这个登录链接原本是有一个 bug 的, 三方登录的时候,一些 code 是存在 sessionstorage 而不是 localstorage ,在系统浏览器选择 qq 登录的时候,会新建标签页触发数据不共享导致授权失败,但是在微信浏览器反而正常,难道是因为微信自带的浏览器是一个什么数据共享的容器或者什么单标签页特制应用?
1 、假如在微信通过对话框的形式打开这个链接,选择 qq 登录,可以正常唤起 qq 并且重定向回微信。但是在 demo 唤起 qq 之后,登录成功被重定向回系统浏览器。现在是不是意味着要做什么拦截操作,将某重定向 URL 注册到这个 demo ,当 qq 登录授权成功的时候,回调到这个 demo ( deeplink ?或者自定义协议?)
2 、这个登录链接原本是有一个 bug 的, 三方登录的时候,一些 code 是存在 sessionstorage 而不是 localstorage ,在系统浏览器选择 qq 登录的时候,会新建标签页触发数据不共享导致授权失败,但是在微信浏览器反而正常,难道是因为微信自带的浏览器是一个什么数据共享的容器或者什么单标签页特制应用?
2 条回复 • 2026-03-05 10:46:43 +08:00
|
1
minatoAqua 8 天前 1. Android 端要跳回应用需要定义好 deeplink 解析规则 ai 生成下代码就好,不难。
2. 微信的浏览器是自己封装的内核,很多特性不一样的,不要以它为标准。 |
|
2
victimsss OP @minatoAqua
感谢回复 这个有一个背景没说清楚 架构是这样的 Android 端(目前没确定 Android 端作为 oidc 的客户端还是 Android 端加载的 h5 页面作为客户端) OIDC 授权服务 QQ(OIDC 提供的外部授权源) 其中 oidc 授权为 qq 的 webapp 现在遇到的问题是 qq 授权 <img src="https://picui.ogmua.cn/s1/2026/03/05/69a8ebfe2bb7c.webp" alt="1772678214440.png" title="1772678214440.png" /> qq 授权的时候有一个回调地址 就是 oidc 的服务 oidc 认证通过再回调到 Android 端的回调地址 现在的问题就是 qq 授权回调必定打开系统浏览器, 我将 schemacallback 改成 自定义 schema 也不行。 我在想难道 Android 端 ---> oidc ---> qq 之间的集成都需要以原生应用的形式 还是说 只要 Android 端 ---> oidc 这一链路就行, |