我正在使用Google Drive iOS SDK。我可以成功登录用户,存储钥匙串项目,这样他每次想要访问他的驱动器时都不必登录。我正在构建的应用程序是多用户的,因此我需要一种方法来注销用户,完全删除该用户存储的钥匙串,并处理新用户的身份验证。
我已经读完了,我发现了这个:
string inputStr = "1995-05-10T00:00:00-00:00";
DateTime dt;
DateTime.TryParse(inputStr,CultureInfo.InvariantCulture,DateTimeStyles.AdjustToUniversal, out dt);
问题在于,当尝试授权新用户时,似乎前一个功能没有完全取消授权用户,因为此功能不会显示登录视图控制器:
- (IBAction)logoutButton:(id)sender {
[GTMOAuth2ViewControllerTouch removeAuthFromKeychainForName:kKeychainItemName];
}
}
我是否遗漏了一些内容,无法从我的应用中正确删除用户的身份验证/授权?或者我应该以不同的方式处理它?</ p>
提前致谢。
答案 0 :(得分:1)
在我的应用中,如果保留GTLServiceDrive的授权程序值,则需要设置authorizer = nil;
我的注销方法中的代码
[GTMOAuth2ViewControllerTouch removeAuthFromKeychainForName:keychainItemName];
[GTLServiceDrive sharedServiceDrive].authorizer = nil;
答案 1 :(得分:0)
实际上,您可以尝试使用GPPSignIn对象的signOut方法来注销您的用户。它会从钥匙串中删除OAuth 2.0令牌。 例如:
- (void)disconnect {
[[GPPSignIn sharedInstance] disconnect];
}
- (void)didDisconnectWithError:(NSError *)error {
if (error) {
NSLog(@"Received error %@", error);
} else {
// The user is signed out and disconnected.
// Clean up user data as specified by the Google+ terms.
}
}
然后,如文档中所述,您必须为使用Google登录的用户提供与您的应用断开连接的权限。如果用户删除了自己的帐户,则必须删除应用从Google API中获取的信息。
示例代码,用于以编程方式撤销代表用户授予您应用的访问令牌,并断开用户与您应用的关联。
Add display:table; to parent div and display:table-cell; to child div.
希望有所帮助!