iOS端GoogleSignIn 6.0如何在登录时指定scopes避免二次授权弹窗
iOS端GoogleSignIn 6.0 首次登录直接配置scopes方案
GoogleSignIn 6.0 支持在首次调用登录接口时直接传入所需scopes,无需先走基础登录再追加授权,不会触发两次授权弹窗。原版本的scopes属性在6.0中已废弃,替换为登录方法的additionalScopes入参,对应示例代码如下:
Swift 示例
GIDSignIn.sharedInstance.signIn( withPresenting: self, hint: nil, additionalScopes: ["https://www.googleapis.com/auth/youtube.upload"] ) { result, error in guard error == nil else { // 处理登录错误 return } // 登录成功,直接获取带指定scopes的授权凭证 }
Objective-C 示例
GIDSignIn *signIn = [GIDSignIn sharedInstance]; [signIn signInWithPresentingViewController:self hint:nil additionalScopes:@[@"https://www.googleapis.com/auth/youtube.upload"] completion:^(GIDSignInResult * _Nullable result, NSError * _Nullable error) { if (error) { // 处理登录错误 return; } // 登录成功逻辑 }];
补充说明:
- 所有需要申请的权限都可以直接放在
additionalScopes数组中,首次登录时会一次性弹窗请求所有权限,符合预期交互体验 - 官方文档提供的两步登录示例仅适用于「登录后才判断需要追加额外权限」的场景,提前明确所需scopes时直接使用上述单次登录流程即可
内容的提问来源于stack exchange,提问作者Deepak Sharma
相关产品推荐
相关产品推荐

