Я пробовал PHP SDK (v.3.1.1) и текущий Javascript SDK, как предлагается здесь: https://developers.facebook.com/docs/guides/web/
теперь при попытке выйти из системы я пробовал как FB.logout () (для js), так и $ facebook-> getLogoutUrl ();
, поскольку в документации для обоих четко указано, что эти методы вывести пользователя из приложения, а также из его сеанса facebook.
Но мне нужно только вывести пользователя из приложения facebook (тестовый сайт).
Я попытался вывести пользователя из своего тестового сайта, игнорируя аспект facebook. Но в этом случае, когда пользователь снова нажимает кнопку входа в систему, процесс входа в систему (аутентификация facebook и перенаправление) не происходит.
Я также пробовал: (как было предложено в предыдущих нерешенных вопросах)
$ facebook-> destroySession (); unset ($ _ SESSION ['fb_'. sfConfig :: get ('app_fb_config_id'). '_code']); unset ($ _ SESSION [ 'fb_'. sfConfig :: get ('app_fb_config_id'). '_access_token']); unset ($ _ SESSION ['fb_'. sfConfig :: get ('app_fb_config_id'). '_user_id']);
однако при перенаправлении на страницу входа $ facebook-> getUser () по-прежнему возвращает пользователя.
примечание: в соответствии с примером документации я Я использую php sdk для входа пользователя на свой тестовый сайт и js sdk для визуализации и облегчения кнопки входа в facebook.
дополнительно:
аутентификация, которую я использую, в основном соответствует тому, что предлагает документация:
phpdefine ('YOUR_APP_ID ',' YOUR APP ID ');//использует PHP SDK. Загрузите с https://github.com/facebook/php-sdkrequire 'facebook.php'; $ facebook = new Facebook (array ('appId' => YOUR_APP_ID, 'secret' => 'YOUR APP SECRET',)); $ userId = $ facebook-> getUser ();?> php if ($ userId) {$ userInfo = $ facebook-> api ('/' + $ userId); ?> Добро пожаловать, = $ UserInfo ['name']?> Php} else {?>
login- button> php}?> window.fbAsyncInit = function () {FB.init ({appId: '', status: true, cookie: true, xfbml: true, oauth: true ,}); FB.Event.subscribe ('auth.login', функция (ответ) {window.location.reload ();}); }; (функция (d) {var js, id = 'facebook-jssdk'; if (d.getElementById (id)) {return;} js = d.createElement ('script'); js.id = id; js.async = true; js.src = "//connect.facebook.net/en_US/all.js"; d.getElementsByTagName ('head') [0] .appendChild (js);} (документ));
Взять ваш код и немного изменить:
php define ('YOUR_APP_ID', 'YOUR APP ID'); //использует PHP SDK. Загрузите с https://github.com/facebook/php-sdk require 'facebook. php '; $ facebook = new Facebook (array ('appId' => YOUR_APP_ID, 'secret' => 'ВАШЕ ПРИЛОЖЕНИЕ СЕКРЕТНО',)); session_start (); $ userId = $ facebook-> getUser (); if ($ userId &&! isset ($ _ SESSION ['fbdata'])) {$ _SESSION ['fbdata'] = array ("userid" => $ userId); }?> php if ($ userId) {$ userInfo = $ facebook-> api ('/' + $ userId); ?> Добро пожаловать, = $ UserInfo ['name']?> Php} else {?>
Я просто добавил сохранение пользовательских данных в сеанс. Теперь, если вы используете этот метод, когда пользователь получает на свою страницу, вы должны проверить, есть ли у него уже сеанс, если все в порядке, не нужно его аутентифицировать.
Если вы хотите вывести пользователя из своего приложения, но не из facebook , просто уничтожьте этот сеанс:
session_start (); session_destroy ();
Это должно удалить все сохраненные данные, которые у вас есть для пользователя. В следующий раз, когда он посетит вашу страницу, вы можете начать с него заново.
Я не программист на php, и весь php, который я использовал здесь, основан на моих (очень) ограниченных знаниях и на том, что я нашел.
- Twitter только что подвергся массовому взлому. Вот как защитить свою учетную запись Facebook и выйти из системы на других устройствах.
- Как выйти из Facebook в браузере настольного компьютера
- Как выйти из Facebook на iPhone
- Как выйти из Facebook на каждом устройстве, на котором вы вошли в систему
- Связанное покрытие из How To Do Everything: Tech:
- How чтобы скрыть свой список друзей на Facebook от всех или только определенных людей
- Как удалить фотографии из Facebook на настольном компьютере или мобильном устройстве
- Как деактивировать свою учетную запись Facebook и повторно активировать ее позже
- Как выйти в прямом эфире на Facebook со своего телефона или компьютер
- СМОТРИ ТАКЖЕ: Твиттер взломан, и вам, вероятно, следует выйти из своей учетной записи, если вы активны на нескольких устройствах. Вот как.
- ТЕПЕРЬ СМОТРЕТЬ:
Twitter только что подвергся массовому взлому. Вот как защитить свою учетную запись Facebook и выйти из системы на других устройствах.

Reuters
- Крупный взлом Twitter затронул десятки хорошо известных аккаунтов, в том числе генерального директора Amazon Джо Байдена и бывшего президента Барака Обаму.
- Выход из активных сеансов на всех платформах социальных сетей - хорошая привычка для обеспечения безопасности вашей учетной записи.
- Выйти из Facebook на настольном компьютере или мобильном устройстве очень просто, если вы знаете, где искать.
- Вы также можете выйти из Facebook на всех устройствах, на которые вы вошли одновременно, через настройки своей учетной записи.
- Посетите BusinessInsider.com, чтобы узнать больше.
В среду хакеры получили контроль над десятками громких аккаунтов в Twitter. мошенничества с криптовалютой. Проверенные аккаунты Джо Байдена, Илона Маска, Канье Уэста и других публиковали твиты с просьбой прислать биткойны. До сих пор неясно, кто стоял за атакой и как она произошла, а хакеры могли заработать 120 000 долларов.
В целях безопасности рекомендуется выйти из активных сеансов для учетных записей социальных сетей на нескольких устройствах. . Вот как это сделать в Twitter.
Ниже вы найдете пошаговые инструкции, как выйти из Facebook на компьютере или iPhone. Мы также включили шаги, как выйти из Facebook на каждом устройстве, в которое вы вошли, что может пригодиться, если вы недавно изменили свой пароль.
Как выйти из Facebook в браузере настольного компьютера
1. Перейдите на сайт www.facebook.com.
2. В правом верхнем углу нажмите на перевернутый треугольник.
Джейми Фридлендер/Business Insider
3. Появится раскрывающееся меню. В самом низу этого меню вы увидите «Выйти».
Джейми Фридлендер/Business Insider
4. Нажмите «Выйти», и все готово!
Как выйти из Facebook на iPhone
1. Откройте приложение Facebook на своем iPhone.
2. Нажмите на три строки в правом нижнем углу. Если у вас телефон Android, они будут в верхнем правом углу.
Джейми Фридлендер/Business Insider
3. Вы увидите экран с вашим именем вверху и различными разделами под ним.
4. Прокрутите до конца вниз, где вы увидите «Выйти».
Джейми Фридлендер/Business Insider 5. Нажмите значок «Выйти». Вам будет предложено уведомление с вопросом, действительно ли вы хотите выйти из системы. Нажмите «Выйти», и все готово!
Джейми Фридлендер/Business Insider
Как выйти из Facebook на каждом устройстве, на котором вы вошли в систему
1. Перейдите в Facebook в своем браузере и нажмите на перевернутый треугольник в правом верхнем углу.
2. Щелкните вкладку с надписью «Настройки».
Джейми Фридлендер/Business Insider
3. Вы попадете на новую страницу. В левой части экрана щелкните раздел «Безопасность и вход».
Джейми Фридлендер/Business Insider
4. В разделе «Где вы вошли в систему» вы увидите все устройства, на которые вы вошли. (Возможно, вам потребуется нажать «Подробнее».)
5. Нажмите «Выйти из всех сеансов» в нижнем правом углу.
Джейми Фридлендер/Business Insider
6. Вы увидите предупреждение о выходе из системы. Нажмите «Выйти», и все готово.
Джейми Фридлендер/Business Insider
Связанное покрытие из How To Do Everything: Tech:
-
How чтобы скрыть свой список друзей на Facebook от всех или только определенных людей
-
Как удалить фотографии из Facebook на настольном компьютере или мобильном устройстве
-
Как деактивировать свою учетную запись Facebook и повторно активировать ее позже
-
Как выйти в прямом эфире на Facebook со своего телефона или компьютер

СМОТРИ ТАКЖЕ: Твиттер взломан, и вам, вероятно, следует выйти из своей учетной записи, если вы активны на нескольких устройствах. Вот как.
ТЕПЕРЬ СМОТРЕТЬ:
login- button> php}?> window.fbAsyncInit = function () {FB.init ({appId: '', status: true, cookie: true, xfbml: true, oauth: true,}); FB.Event.subscribe ('auth.login', функция (ответ) {window.location.reload ();}); }; (функция (d) {var js, id = 'facebook-jssdk'; if (d.getElementById (id)) {return;} js = d.createElement ('script'); js.id = id; js.async = true; js.src = "//connect.facebook.net/en_US/all.js"; d.getElementsByTagName ('head') [0] .appendChild (js);} (документ));