Ios 使用GIDSignin进行谷歌多重登录

Ios 使用GIDSignin进行谷歌多重登录,ios,google-signin,gidsignin,Ios,Google Signin,Gidsignin,我可以通过下面的代码使用GIDSignIn对单个帐户进行身份验证 GIDSignIn *googleSignIn = [GIDSignIn sharedInstance]; googleSignIn.delegate = self; googleSignIn.uiDelegate = self; googleSignIn.clientID = (NSString*)cGmailAppClientId; googleSignIn.scopes = [self

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

    GIDSignIn *googleSignIn = [GIDSignIn sharedInstance];
    googleSignIn.delegate = self;
    googleSignIn.uiDelegate = self;
    googleSignIn.clientID = (NSString*)cGmailAppClientId;
    googleSignIn.scopes = [self getGmailAuthenticationScopes];;
    [googleSignIn signIn];
但是
GIDSignIn
是共享实例。这是一个只有一个帐户。如何添加多个帐户应同时访问多个帐户(例如获取访问令牌)


没有给出正确的想法

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

幸运的是,有一个替代库可以实现同样的目的。它的使用要比GIDSignIn复杂一些,但工作方式大体相同。关键的区别在于1)您可以一次创建多个授权,2)您可以使用您选择的密钥将它们持久化到iOS密钥链。如果你对访问Gmail特别感兴趣,那么可能会有所帮助


听起来这些库是由公司内的不同团队支持的,但我怀疑它们要融合还需要一段时间。

GIDSignIn无法做到这一点,您可能应该自己执行HTTP请求。但谷歌的工程师并不是那么简单,你肯定会面临反垃圾邮件的麻烦。为什么你需要在一台个人设备上同时拥有多个帐户?拥有个人和办公室帐户的人。(现在大多数人拥有两个帐户是正常的。对吧?)。这就是为什么。你怎么说,“不能和吉德西林在一起?”。。。是否有与此相关的文档或至少一个论坛问题?如果是,请发布一个链接。我的猜测也和你的想法一样(
sharedInstance
)。我知道,我们可以为此改变观念。但我的要求是,我必须考虑所有的问题。无论如何,感谢您的想法(
sharedInstance
)。我在
GIDSignIn
上的经验表明,令牌信息存储在钥匙链中,您自己无法设置不同的令牌,因为
GIDSignIn
读取钥匙链本身,因此,您的任务可能无法通过google的ios sdk完成。您是否尝试使用两个不同的
GIDSignIn-->signIn
?(即我们自己的对象而不是singleton对象)它将在密钥链中保存两个令牌。但问题是,如果
GIDSignIn
对象被销毁,我们如何检索这两个令牌?