SimpleAuth不会在Instagram上显示登录屏幕

时间:2015-03-07 07:51:56

标签: 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

然而,当我重新启动app(访问令牌设置为nil)时,它只是再次加载,当我查看NSLog(@"access token is afterProceed %@", self.accessToken);时,有一个访问令牌(使用时未在第二次输入)

为什么会这样?如何为应用程序实现注销逻辑?

1 个答案:

答案 0 :(得分:1)

我相信这是因为您的SimpleAuth授权请求仍然针对当前登录Instagram的帐户进行了验证。您必须删除访问令牌(就像您已经完成的那样),同时进行注销调用以取消激活已经授权的当前帐户。

您可以通过使用以下网址创建https://www.instagram.com/accounts/logout/来{{1}}来删除当前已登录的用户。