Я пытаюсь выйти из моего веб-сайта при попытке выйти из системы, но не выйти из Facebook.Это урезанная версия моего кода, адаптированная на примере, предоставленном Facebook.
В настоящее время происходит то, что при выходе из системы сеанс разрушается, страница перезагружается, а затем событие подписывается на auth.login.и auth.logout запускается при загрузке страницы и отправляет страницу в цикл перенаправления.
Я попытался разместить код выхода из системы на отдельной странице и дать пользователю ссылку, по которой можно щелкнуть, чтобы вернуться на сайт, но опять-таки auth.login запускается при загрузке страницы и снова регистрирует пользователя..
Я спрашиваю, как мне уничтожить сеанс таким образом, чтобы пользователь не вышел из Facebook, но автоматически не авторизовался на моем сайте.Независимо от того, что я пробую, auth.login запускается автоматически и повторно авторизует пользователя!
<code><?php
require 'include/facebook/facebook.php';
$facebook = new Facebook(array(
'appId' => 'API KEY',
'secret' => 'API SECRET',
));
if(isset($_POST['logout'])){
$facebook->destroySession();
if (isset($_SERVER['HTTP_COOKIE'])) {
$cookies = explode(';', $_SERVER['HTTP_COOKIE']);
foreach($cookies as $cookie) {
$parts = explode('=', $cookie);
$name = trim($parts[0]);
setcookie($name, '', time()-3600);
setcookie($name, '', time()-3600, '/');
setcookie($name, '', time()-3600, '/','MY DOMAIN');
}
}
$signed_request_cookie = 'fbsr_' . API KEY;
setcookie($signed_request_cookie, "", time()-3600, '/', 'MY DOMAIN');
}
// See if there is a user from a cookie
$user = $facebook->getUser();
if ($user) {
try {
// Proceed knowing you have a logged in user who's authenticated.
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
echo '<pre>'.htmlspecialchars(print_r($e, true)).'
';$ user = null;}}?>выйти window.fbAsyncInit = function () {FB.init ({appId: 'getAppID ()?> ', channelUrl:' /channel.php ', // Файл cookie файла канала: true, xfbml: true, oauth: true, status: true});FB.Event.subscribe ('auth.login', function (response) {alert ('logging'); window.location.reload ();});FB.Event.subscribe ('auth.logout', function (response) {alert ('logging out)); window.location.reload ();});};(function () {var e = document.createElement ('script'); e.async = true; e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js'; документ.getElementById ('fb-root'). appendChild (e);} ());СООБЩЕНИЕ: