我想在我的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
。
然而,当我重新启动app(访问令牌设置为nil)时,它只是再次加载,当我查看NSLog(@"access token is afterProceed %@", self.accessToken);
时,有一个访问令牌(使用时未在第二次输入)
为什么会这样?如何为应用程序实现注销逻辑?
答案 0 :(得分:1)
我相信这是因为您的SimpleAuth授权请求仍然针对当前登录Instagram的帐户进行了验证。您必须删除访问令牌(就像您已经完成的那样),同时进行注销调用以取消激活已经授权的当前帐户。
您可以通过使用以下网址创建https://www.instagram.com/accounts/logout/
来{{1}}来删除当前已登录的用户。