我可以通过以下代码使用 GIDSignIn
对单个帐户进行身份验证。
GIDSignIn *googleSignIn = [GIDSignIn sharedInstance];
googleSignIn.delegate = self;
googleSignIn.uiDelegate = self;
googleSignIn.clientID = (NSString*)cGmailAppClientId;
googleSignIn.scopes = [self getGmailAuthenticationScopes];;
[googleSignIn signIn];
但是 GIDSignIn
是共享实例。这是一个唯一的帐户。如何添加多个帐户? 应同时访问多个帐户(例如获取访问 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 进行谷歌多次登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32393412/