首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用GIDSignin进行谷歌多次登录

使用GIDSignin进行谷歌多次登录
EN

Stack Overflow用户
提问于 2015-09-04 08:23:56
回答 2查看 1.6K关注 0票数 16

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

代码语言:javascript
复制
    GIDSignIn *googleSignIn = [GIDSignIn sharedInstance];
    googleSignIn.delegate = self;
    googleSignIn.uiDelegate = self;
    googleSignIn.clientID = (NSString*)cGmailAppClientId;
    googleSignIn.scopes = [self getGmailAuthenticationScopes];;
    [googleSignIn signIn];

但是GIDSignIn是共享实例。只有一个账户。如何添加多个帐户?多个帐户应该并发访问 (Ex获取访问令牌)。

与此相关的问题没有给出正确的想法。

EN

回答 2

Stack Overflow用户

发布于 2018-03-24 04:36:13

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

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

这听起来像是从这条线上库得到了公司内部不同团队的支持,但我怀疑它们还需要一段时间才能聚合,如果有的话。

票数 5
EN

Stack Overflow用户

发布于 2022-10-19 13:43:52

我通过手动重写库使用的内部密钥链(GTMKeychain)来解决这个问题。我为所有电子邮件保存了所有的"auth“键的数据值,然后在GTMKeychain中一个一个地恢复它们,然后称为restorePreviousSignIn,它使用来自GTMKeychain的值。

在编写的时候,这个解决方案可以工作,但是不能保证它能与未来的版本一起工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32393412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档