ios - 使用 GIDSignin 进行谷歌多次登录

标签 ios google-signin gidsignin

我可以通过以下代码使用 GIDSignIn 对单个帐户进行身份验证。

    GIDSignIn *googleSignIn = [GIDSignIn sharedInstance];
    googleSignIn.delegate = self;
    googleSignIn.uiDelegate = self;
    googleSignIn.clientID = (NSString*)cGmailAppClientId;
    googleSignIn.scopes = [self getGmailAuthenticationScopes];;
    [googleSignIn signIn];

但是 GIDSignIn 是共享实例。这是一个唯一的帐户。如何添加多个帐户? 应同时访问多个帐户(例如获取访问 token )。

Related SO question没有给出正确的想法。

最佳答案

我认为 GIDSignIn 不支持多个帐户。虽然理论上您可以实例化 sharedInstance 以外的实例,但一次只会将一个授权持久保存到 iOS 钥匙串(keychain)。 (库需要多个 key 来保存多个授权,但如果您实例化多个实例,冷启动后它怎么知道哪个是哪个?)

幸运的是,有 Google's GTMAppAuth , 一个实现相同目的的替代库。它比 GIDSignIn 使用起来稍微复杂一些,但工作方式大致相同。主要区别在于 1) 您可以一次创建多个授权,以及 2) 您可以使用您选择的 key 将它们保存到 iOS 钥匙串(keychain)。如果您对访问 Gmail 特别感兴趣,那么 these steps from the popular MailCore2 library可能会有帮助。

听起来 from this thread就像这些库由公司内的不同团队支持一样,但我怀疑它们融合之前还需要一段时间,如果有的话。

关于ios - 使用 GIDSignin 进行谷歌多次登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32393412/

相关文章:

android - 是否可以建立内部 APNs 服务器?

ios - 无法将类型 '() -> Void' 的值分配给类型 '(() -> Void)!'

ios - 在 Facebook 和 Google 登录方法中更改项目名称

ios - Firebase Google 登录 : get user location

ios - 如何使用 iOS SDK 覆盖其他应用程序

ios - 对象未使用的属性有任何危害吗?

ios - 如何在 iOS 应用程序中对 2 个不同的 Google 帐户进行 oAuth

java - 更新应用时如何让所有现有用户退出 Google?

ios - 错误域 = MCOErrorDomain 代码 = 5 "Unable to authenticate with the current session' s 凭据。”

ios - 'GIDSignIn' 没有可见的 @interface 声明选择器 'handleURL :