Как войти в API Graph oAuth FB НЕ прозрачно? - PullRequest
1 голос
/ 18 февраля 2012

Из очень старого сообщения в блоге от FB:

Как и было обещано, мы изменили процедуру входа в систему. Это изменение должно улучшить пользовательский опыт и не требует никаких изменений в существующие приложения. Теперь, если пользователь уже использовал Facebook, вход в приложение происходит прозрачно. Из-за этого разработчики Возможно, вы захотите предоставить пользователям возможность выйти, разместив слово «подтвердить» на http://www.facebook.com/logout.php. В качестве альтернативы, разработчики могут предоставить ссылку для переключения пользователя через страницу входа параметр "skipcookie" (как описано в руководстве по аутентификации.

Что если я не хочу, чтобы это произошло, а хочу, чтобы пользователь был перенаправлен на FB и подтвердил свою личность, даже если он вошел в FB? Я везде искал эту директиву skipcookie, но ничего не нашел в ней, на самом деле я думаю, что она была прекращена.

Для записи я использую в своем приложении django.

Заранее спасибо за любую помощь.

Ответы [ 2 ]

3 голосов
/ 18 февраля 2012

Это очень старо, и, как вы сказали, на самом деле больше не применимо, тем более что все перешло от oauth к oauth 2.

Что если я не хочу, чтобы это произошло,а хотите, чтобы пользователь был перенаправлен на FB и подтвердил свою личность, даже если вошел в FB?

Итак, вот что вы делаете.Если вы хотите заставить пользователя повторно войти в Facebook (подтверждая свою личность, и это не тот человек, который только что подошел к разблокированному компьютеру, уже вошедшему в Facebook), сначала вызовите FB.logout (), затем вызовите FB.login (), чтобы войти в систему. Так как вы сначала вызвали logout (), это заставит пользователя войти в Facebook перед авторизацией вашего приложения.

0 голосов
/ 21 февраля 2012

Если кому-то все еще интересно, как реализовать это с помощью Django, вот как я выхожу из системы на сервере Facebook:

next_url = 'http://your.app.url/return/from/fb/'
args = {
    'next':next_url,
    'access_token':access_token
}
redirect_to = "https://www.facebook.com/logout.php?" + urllib.urlencode(args)

return HttpResponseRedirect(redirect_to)

С этим вы можете выйти из системы, используя сервербоковой скрипт (будь то python / Django или любой другой язык / фреймворк, просто используйте API для получения URL вашего языка).

С этим кодом пользователь будет перенаправлен на URL выхода из FB и затем вернется к next_url

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...