我想在我的 Instagram 简单应用程序中实现注销逻辑。为此,我使用 SimpleAuth 库。第一次,当用户启动应用程序时,一切正常。 viewDidLoad中有代码:
-(void)viewDidLoad{
.. some code for interface management
[SimpleAuth authorize:@"instagram" options:@{@"scope":@[@"likes"]} completion:^(NSDictionary* responseObject, NSError *error) {
self.accessToken = responseObject[@"credentials"][@"token"];
[userDefaults setObject:self.accessToken forKey:@"accessToken"];
[userDefaults synchronize];
NSLog(@"access token is afterProceed %@", self.accessToken);
[self refresh];
}];
} else {
[self refresh];
}
好吧,对于注销逻辑我做了简单的方法:
-(void)logoutButtonClicked{
//Deleting token
self.accessToken = nil;
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setObject:nil forKey:@"accessToken"];
[userDefaults synchronize];
}
之后,access.token
假设为nil,结果为nil
。
但是,当我重新启动应用程序(访问 token 设置为 nil)时,它会再次加载,当我查看 NSLog(@"access token is afterProceed %@", self.accessToken);
有一个access token(用过第二次没有输入)。
为什么会这样?如何实现应用的退出逻辑?
最佳答案
我相信这是因为您的 SimpleAuth 授权请求仍然针对当前登录 Instagram 的帐户进行了验证。您必须删除访问 token (就像您已经完成的那样)并调用 Logout 以停用已授权的当前帐户。
您可以执行此操作的一种方法是创建一个 NSURLSessionTask
,其 URL 使用:https://www.instagram.com/accounts/logout/
以删除当前登录的用户。
关于ios - SimpleAuth 不在 Instagram 上显示登录屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28912660/