ios - SimpleAuth 不在 Instagram 上显示登录屏幕

标签 ios objective-c

我想在我的 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/

相关文章:

objective-c - 函数 objc_getAssociatedObject 的隐式声明在 C99 中无效

ios - 如何在 ios 中制作自定义 UILabel

ios - 在显示第一个 vc 之前,无法从一个 View Controller 转换到下一个 View Controller ?

ios - 我如何从UITableView更改为UIViewController

ios - 本地化的 NSDateFormatter

objective-c - SharedInstance 实际上是什么?

ios - 如何根据时间调用2个号码

ios - 如何在 iOS App 中间接将 Realm 数据库转换为 CSV 文件格式?

ios - IBAction 连接到 IF 语句

ios - 将 UIImagePickerController 的外观设置回默认值