При реализации единого входа в facebook вызов функции выхода из facebook ios sdk не очищает учетные данные пользователя и не запрашивает вход в следующий раз.
Вызов функции выхода из facebook ios sdk не очищает учетные данные пользователя
comment
вы имеете в виду OAuth и открытие внешнего мобильного сафари?
- person Nick Weaver   schedule 20.05.2011
comment
да, который указан на сайте developer.facebook.com
- person Sabir Ali   schedule 20.05.2011
Ответы (2)
Я использовал Graph API.....
- (IBAction)loginButtonPressed:(id)sender {
NSString *client_id = @"dsfgdgfgfgdfgvdfg";
//alloc and initalize our FbGraph instance
self.fbGraph = [[FbGraph alloc] initWithFbClientID:client_id];
//begin the authentication process.....
[fbGraph authenticateUserWithCallbackObject:self andSelector:@selector(fbGraphCallback:)
andExtendedPermissions:@"user_photos,user_videos,publish_stream,offline_access,user_checkins,friends_checkins"];
}
- (void)logOutButtonPressed {
NSLog(@"logout");
fbGraph.accessToken = nil;
NSHTTPCookie *cookie;
NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (cookie in [storage cookies])
{
NSString* domainName = [cookie domain];
NSRange domainRange = [domainName rangeOfString:@"facebook"];
if(domainRange.length > 0)
{
[storage deleteCookie:cookie];
}
}
[self loginButtonPressed:nil];
}
И этот код РАБОТАЕТ ОТЛИЧНО. ПОПРОБУЙТЕ ЭТО
person
iProgrammer
schedule
20.05.2011
@Pallavi действительно ли это удаляет файл cookie в мобильном сафари? Я видел этот код раньше и немного отлаживал, но безрезультатно.
- person Nick Weaver; 20.05.2011
Я не использую мобильное сафари, вход в систему — это веб-просмотр, и я даю кнопку для выхода.
- person iProgrammer; 20.05.2011
@Pallavi Я думаю, что это работает, однако, если вы используете одну из библиотек Facebook, она запустит мобильное сафари, что является более надежным способом позволить пользователю войти в систему: приложение не имеет доступа к учетным данным, в веб-представлении вы можете получить доступ к тех.
- person Nick Weaver; 20.05.2011
ссылка Я использовал это
- person iProgrammer; 20.05.2011
Это работает, когда я выхожу из системы, а затем снова нажимаю кнопку для входа в систему, но это не работает, когда я выхожу из приложения после выхода из системы, снова открываю приложение и нажимаю кнопку входа в систему. Какое-то время это сводило меня с ума.
- person Ishu; 25.05.2011
Если я выйду из системы и выйду из приложения, то при запуске приложения будет отображаться страница входа.
- person iProgrammer; 25.05.2011
Я испытал то же самое, однако я думаю, что это не ошибка, хотя и сбивает с толку.
Facebook размещает файл cookie в мобильном сафари, который ссылается на действительный сеанс или, возможно, на токен доступа. Если вы выходите из системы с помощью библиотеки Facebook, он очищает токен доступа и все файлы cookie веб-просмотра, используемые не в мобильном сафари. На самом деле вы не можете сделать это по коду. Теперь, если вы вернетесь и откроется мобильное сафари, сеанс все еще будет действительным, и вы снова войдете в систему без ввода учетных данных.
Вы можете сообщить об ошибке, чтобы спросить, может ли Facebook аннулировать серверную часть токена доступа.
person
Nick Weaver
schedule
20.05.2011