iOS SDK Выход из системы в фоновом режиме и сессиях - PullRequest
2 голосов
/ 01 марта 2012

У меня есть приложение, в котором я отправляю данные в Facebook, у меня есть логин, и все работает отлично, сохраняя учетные данные пользователя по умолчанию при успешном входе в систему.

Проблема, с которой я сталкиваюсь, заключается в том, чтобыть не в состоянии определить, когда пользователь вышел из приложения Facebook или с помощью мобильного Safari.Это означает, что мое приложение привязано к одному и только одному пользователю на весь срок его жизни.

Я не хочу помещать кнопку «Выход» в мое приложение, если бы она была у меня, я мог бы легко вызвать метод выхода из системы.и удалите учетные данные пользователя, означающие, что новый пользователь может проходить аутентификацию в моем приложении, но это невозможно.

Кто-нибудь знает, как я могу проверить, вошел ли пользователь в систему и получит ли его идентификатор Facebook?Таким образом, я мог бы снова принудительно выполнить авторизацию, если либо никто не вошел в систему, либо учетные данные вошедшего в систему пользователя и сохраненные учетные данные не совпадают.

Спасибо

Ответы [ 2 ]

1 голос
/ 22 декабря 2012

Я думаю, что проблема и путаница в том, что FB реализовал «Единый вход (SS-On)», а не «Единый выход (SS-Out)».

Способ работы SS-On заключается в том, что если вы ранее вошли в свое приложение, токен будет храниться в вашем приложении. Это означает, что даже если вы вышли из приложения FB и, возможно, впоследствии вошли в систему как другой пользователь, при условии, что ваше приложение все еще имеет токен от предыдущего пользователя, вы все равно можете получить доступ к данным предыдущего пользователя.

То, что вы можете сделать, это закрыть closeSessionAndClearToken в вашем приложении, когда оно переходит в фоновый режим. Это может или не может быть желаемое поведение для вас. Обратите внимание, что это означает, что все ваше приложение возвращается из активного из фонового состояния, и каждый раз нужно будет снова и снова выполнять всю процедуру SS-On.

- (void)applicationDidEnterBackground:(UIApplication *)application
{
    [FBSession.activeSession closeSessionAndClearToken];
}
1 голос
/ 02 марта 2012

Вы можете использовать

if([facebook isSessionValid])
{
    // 1. Either the user has logged out
    // 2. Or the user has changed the password
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...