2015-03-07 5 views
0

Я хочу реализовать логику выхода в моем обычном приложении instagram. Для этого я использую библиотеку SimpleAuth. В первый раз, когда пользователь запускает приложение, все в порядке. Существует код в viewDidLoad:SimpleAuth не показывает экран входа в Instagram

-(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]; 
} 

Fine, для выхода из системы логики я сделал простой метод:

-(void)logoutButtonClicked{ 

    //Deleting token 
    self.accessToken = nil; 

    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; 

    [userDefaults setObject:nil forKey:@"accessToken"]; 
    [userDefaults synchronize]; 

} 

После этого access.token предположим, равной нулю, и это nil.

Однако, когда я заново запускаю приложение (с токеном доступа, установленным на нуль), он просто загружается снова, и когда я смотрю NSLog(@"access token is afterProceed %@", self.accessToken);, появляется токен доступа (он не вводился во второй раз).

Почему это происходит? Как реализовать логику выхода в приложение?

ответ

1

Я считаю, что это связано с тем, что ваш запрос авторизации SimpleAuth по-прежнему проверяется для учетной записи, которая в настоящее время подписана в Instagram. Вы должны удалить токен доступа (как и вы уже сделали), а также сделать вывод Logout, чтобы инактивировать текущую учетную запись, которая уже авторизована.

Один из способов сделать это - создать NSURLSessionTask с URL-адресом, который использует: https://www.instagram.com/accounts/logout/ для удаления текущего подписанного пользователя.

Смежные вопросы