You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google OAuth登录流程意外请求额外权限的排查与解决求助

排查并移除Google OAuth额外请求的profile/openid权限方案

一、核对客户端代码的权限参数

  • 不管使用原生Google Sign-In SDK还是第三方封装库(如Firebase Auth),强制指定仅请求email权限:
    • Android:GoogleSignInOptions不要调用requestProfile(),requestScopes只传入Scope("email");
    • iOS:GIDSignInConfiguration的scopes数组仅保留"https://www.googleapis.com/auth/userinfo.email";
    • Firebase Auth:调用signInWithGoogle时,显式设置scopes = ["email"],覆盖默认配置。
  • 排查代码中是否有隐性追加scope的逻辑,比如某些工具类、封装方法偷偷添加了profile或openid。

二、检查OAuth同意屏幕配置

  • 登录Google Cloud控制台,进入「API和服务」→「OAuth同意屏幕」:
    • 查看「已发布的范围」和「测试范围」,删除profile、openid相关条目,仅保留email权限;
    • 测试版应用修改后,测试用户需重新授权即可生效;已发布应用需提交审核,审核通过后所有用户会看到更新后的权限请求。

三、清除缓存与旧授权记录

  • 移动端:卸载重装应用,清除应用缓存,避免本地缓存的旧scope参数被复用;
  • Google账号侧:让测试用户登录Google账号的「安全」页面,找到「第三方应用访问权限」,移除你的应用授权记录,重新发起授权即可看到最新权限请求。

四、排查依赖库版本变动

  • 若近期更新了Google Sign-In、Firebase Auth等依赖库,新版本可能默认追加了profile/openid。查看对应SDK的版本变更日志,确认默认scope配置,然后手动覆盖为仅email。

五、抓包验证实际请求

  • 用Charles或Fiddler抓取移动端的OAuth请求,查看请求参数中的scope字段,确认是否包含profile或openid。如果有,定位代码中追加这些权限的位置并删除。

内容的提问来源于stack exchange,提问作者broun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 18:42:07