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

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

但是GIDSignIn是共享实例。它仅用于一个帐户。如何添加多个帐户? 多个帐户应同时访问(Ex获取访问 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的Google多次登录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32393412/

10-08 23:36