我可以使用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/