You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Google Sign-in 2FA验证跳转异常求助:部分Android用户完成验证后直接返回App陷入循环

Google Sign-in 2FA验证跳转异常求助:部分Android用户完成验证后直接返回App陷入循环

各位大佬好,我现在碰到一个头疼的问题,想请大家帮忙分析下:

我在基于Expo的React Native移动端App里用Google Sign-in做用户认证,目前Android端有小部分用户遇到了跳转异常的问题,具体情况如下:

当前异常流程

  • 用户点击「用Google登录」按钮
  • 通过WebBrowser.openAuthSessionAsync打开安全浏览器(Android端使用ChromeCustomTabs),跳转至我们的认证服务器(请求里携带了redirect-uri参数)
  • 服务器引导用户进入Google认证流程,同时把redirect-uri嵌入到OAuth的state属性中
  • 用户输入账号密码完成登录,触发2FA验证(要么在Gmail应用内,要么是系统原生弹窗)
  • 用户确认2FA后,没有回到之前的认证浏览器标签页,直接跳转回了App
  • App此时没有任何响应,用户再次点击登录按钮,浏览器会被重新打开,陷入循环

正常预期流程(大部分用户能正常走通)

  • 用户完成2FA验证后,跳转回认证浏览器标签页
  • 浏览器再跳转至我们服务器的回调地址
  • 服务器验证用户数据,按需创建账号,生成JWT,提取并验证redirect-uri的有效性
  • 通过Deep Link跳转回App并携带Token
  • WebBrowser.openAuthSessionAsync识别到Deep Link,完成认证并自动关闭浏览器

现在的困境是,这个问题只在一小部分Android用户身上出现,Expo和服务器端都没有捕获到任何错误日志,我实在摸不清到底是流程里哪一环出了问题。想请教大家:

  • 有没有可能的原因导致这种跳转异常?
  • 有没有办法配置Gmail/系统2FA验证后的跳转目标?

补充说明:我们选择通过浏览器走认证流程,是希望由服务器统一处理认证逻辑,而且这套系统也同时复用给了Web端。

备注:内容来源于stack exchange,提问作者Eli

火山引擎 最新活动