Выход из Facebook при отсутствии авторизации

Я создаю общедоступную установку с помощью iPad, созданную как веб-приложение для iOS (используя функцию «Добавить на главный экран»), которая позволит пользователям обмениваться контентом на Facebook.

В настоящее время я регистрирую пользователя в Facebook и заставляю его авторизовать мое приложение Facebook, когда они нажимают мою пользовательскую кнопку общего доступа. При успешном входе в систему я открываю диалоговое окно Feed Facebook и разрешаю им делиться. После того, как они поделились (или нажали кнопку «Отмена»), я автоматически выхожу из них, гарантируя, что следующий пользователь, который использует общедоступную установку, не сможет поделиться с учетной записью Facebook предыдущего пользователя.

Все это работает хорошо, но все становится сложнее, если кто-то нажмет мою пользовательскую кнопку «Поделиться», войдет в Facebook, а затем не разрешит мое приложение. Это будет означать, что они вошли в систему, но, поскольку они не авторизовали приложение, у меня нет токена доступа, и поэтому я не могу их выйти из системы (для FB.logout() требуется токен доступа).

Это можно обойти? Или есть другой способ, которым я могу выйти из системы? Или есть безопасный способ разрешить пользователю общедоступной установки (встроенной в HTML) поделиться на Facebook и автоматически выйти из системы после этого? Поможет ли создание собственного приложения obj-c и использование iOS SDK от Facebook?

Лучшее, что я могу придумать, это то, что если пользователь входит в систему, но не разрешает приложение, ему говорят, что ему нужно выйти из системы, и перенаправляют на Facebook, чтобы иметь возможность сделать это. Однако это дает им возможность просматривать Facebook и (через общие ссылки в их ленте) весь Интернет - это неприемлемо для нашей установки.


person mattbilson    schedule 17.06.2013    source источник


Ответы (1)


Я решил эту проблему, создав собственное приложение для iOS, в котором ссылка на общий доступ Facebook открывалась в собственном UIWebView. И как только обмен был завершен, я удалил всю информацию о сеансе и файлах cookie, фактически выполнив выход пользователя из системы.

person mattbilson    schedule 02.09.2013