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

Swift iOS中GIDSignIn的Scopes未自动选中问题咨询

iOS GIDSignIn OAuth认证权限问题

我们的iOS应用采用GIDSignIn实现OAuth认证,目前遇到以下问题:

  • 授权界面中配置的Scopes未自动选中(附图:Google授权界面未选中权限)
  • 已在代码中指定additionalScopes,但仍需手动选择权限范围

补充信息:客户端ID及应用已在Google控制台完成验证,登录时无“不安全应用”提示。同时想了解:应用上线至App Store后该情况是否会改变?

代码实现:

func signInWithGoogle() {
        guard let clientID = FirebaseApp.app()?.options.clientID else { return }

        // 创建Google Sign In配置对象
        let config = GIDConfiguration(clientID: clientID)
        
        print("Client ID: \(clientID)")
        let additionalScopes = ["https://www.googleapis.com/auth/youtube.readonly", "https://www.googleapis.com/auth/yt-analytics.readonly"]
        
       
        // 启动登录流程
        GIDSignIn.sharedInstance.signIn(with: config, presenting: self, hint: nil, additionalScopes: additionalScopes) { [unowned self] user, error in
        

          if let error = error {
            // ...
            return
          }

}

问题解答

1. 为何指定additionalScopes后仍需手动选择权限

  • Google OAuth的安全设计中,非基础权限(如你请求的YouTube只读、YouTube分析只读权限)默认不会自动勾选。即使用户首次授权,也需要手动确认这类额外权限,目的是让用户明确知晓应用请求的权限范围,避免静默获取敏感权限。
  • 代码中指定additionalScopes仅用于告知Google需要请求这些权限,但最终的权限勾选操作必须由用户手动完成——只有Google定义的"基础权限"(如邮箱、基本个人资料等)才会默认选中。

2. 上线App Store后情况是否会改变

不会。这个权限勾选的行为是Google OAuth认证流程的统一规则,和应用是否上架App Store无关。无论应用处于开发测试阶段还是正式上架,Google的授权界面都会保持一致的权限展示和交互逻辑,用户仍需手动确认额外权限。

补充建议:
可以在触发Google授权前,在应用内添加提示说明,告知用户需要这些权限的具体用途,减少用户疑惑,提升授权通过率。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 18:35:15