Не удается выйти из сеанса OAuth на Facebook без выхода пользователя из Facebook - PullRequest
3 голосов
/ 12 января 2012

В SDK я использую logout.php с редиректом:

https://www.facebook.com/logout.php?confirm=1&next={SOME URL}&access_token={ACCESSTOKEN}

Это нормально выводит меня из системы, но также выводит пользователя из Facebook. Нет ли способа выйти из сеанса OAuth без выхода из Facebook?

Ответы [ 2 ]

5 голосов
/ 12 января 2012

Да, я сам столкнулся с этой же проблемой. Не делайте logout.php или FB.logout () JS SDK. Вместо этого вызовите Graph API с командой HTTP Delete для me/permissions. Это убьет маркер доступа, удалит приложение из списка приложений пользователя и сохранит cookie их браузера для Facebook. Вы можете назвать это либо на стороне сервера, либо на стороне клиента. Вот способ Javascript SDK на стороне клиента:

FB.api("me/permissions","delete", function(response){/*do something if you want*/})
1 голос
/ 12 января 2012

Это одна из многих раздражающих вещей при разработке на платформе Facebook.Единственный способ выйти из системы через сеанс браузера - использовать функцию выхода из JavaScript или перенаправление, как вы пытались, но при этом пользователь также выйдет из Facebook, что очень раздражает с точки зрения пользователей.Проблема в том, что вы не можете получить доступ к cookie-файлам, которые они устанавливают для вашего приложения, чтобы удалить его из-за междоменных ограничений, поэтому вы застряли с ограниченными возможностями, которые предоставляет Facebook.Если вы не запрашиваете offline_access, вы можете просто забыть токен доступа пользователей, и он истечет через час.Несмотря на то, что проблема все еще существует, файл cookie все еще устанавливается в течение этого часа.

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