通过下面的代码,我可以使用GIDSignIn对单个帐户进行身份验证。
GIDSignIn *googleSignIn = [GIDSignIn sharedInstance];
googleSignIn.delegate = self;
googleSignIn.uiDelegate = self;
googleSignIn.clientID = (NSString*)cGmailAppClientId;
googleSignIn.scopes = [self getGmailAuthenticationScopes];;
[googleSignIn signIn];但是GIDSignIn是共享实例。只有一个账户。如何添加多个帐户?多个帐户应该并发访问 (Ex获取访问令牌)。
与此相关的问题没有给出正确的想法。
发布于 2018-03-24 04:36:13
我不认为GIDSignIn支持多个帐户。虽然理论上您可以实例化sharedInstance以外的实例,但每次只有一个授权会持久化到iOS密钥链。(库需要多个键来保存多个授权,但如果实例化了多个实例,它如何知道冷启动后哪个是哪个?)
幸运的是,有 GTMAppAuth,是一个实现相同目的的替代库。它的使用比GIDSignIn要复杂一些,但其工作方式大致相同。关键的区别在于: 1)您可以一次创建多个授权;2)您可以使用您选择的键将它们持久化到iOS密钥链。如果您对访问Gmail感兴趣,那么这些步骤来自流行的MailCore2库可能会有所帮助。
这听起来像是从这条线上库得到了公司内部不同团队的支持,但我怀疑它们还需要一段时间才能聚合,如果有的话。
发布于 2022-10-19 13:43:52
我通过手动重写库使用的内部密钥链(GTMKeychain)来解决这个问题。我为所有电子邮件保存了所有的"auth“键的数据值,然后在GTMKeychain中一个一个地恢复它们,然后称为restorePreviousSignIn,它使用来自GTMKeychain的值。
在编写的时候,这个解决方案可以工作,但是不能保证它能与未来的版本一起工作。
https://stackoverflow.com/questions/32393412
复制相似问题