Intereting Posts
Область переменных в классе PHP XPath Query & HTML – поиск конкретных HREF в пределах якорных тегов Отключить php-функции в htaccess Должен ли я создавать экземпляры других классов в конструкторе? Как использовать токен обновления, чтобы получить авторизацию в фоновом режиме и получить токен доступа? Неправильно ли использовать параметр GET (в URL) без значения? умножить два значения массива в php Список воссозданных имен альбомов, которые были ранее удалены PHP API для Hotmail, Gmail и Yahoo? Необходимо загрузить файлы в документы Google из моего приложения и сохранить ссылку на загруженный файл Отправка электронной почты с localhost в php в windows PHP-скрипты командной строки игнорируют директивы php.ini и ini_set ('memory_limit', …) Остановить печать сообщений об ошибках php в браузере Youtube API (PHP) – как добавить (существующее) видео в существующий плейлист? Изменения в php.ini не влияют

PHP SDK – выход в Facebook

Я использую последнюю версию PHP SDK для Facebook (3.2.1)

Мне было интересно, когда выходите с помощью функции, предоставленной в base_facebook.php из sdk, если есть способ остановить ее от фактического выхода из фейсбука, но все же удалить сеанс для приложения веб-сайта?

Ниже приведена функция выхода из base_facebook.php

 /** * Get a Logout URL suitable for use with redirects. * * The parameters: * - next: the url to go to after a successful logout * * @param array $params Provide custom parameters * @return string The URL for the logout flow */ public function getLogoutUrl($params=array()) { session_destroy(); return $this->getUrl( 'www', 'logout.php', array_merge(array( 'next' => $this->getCurrentUrl(), 'access_token' => $this->getUserAccessToken(), ), $params) ); } 

а затем мой logout url: $logoutUrl = $facebook->getLogoutUrl(); затем, очевидно, используя тег привязки для выхода из системы: <a href="<?php echo $logoutUrl; ?>">Logout</a>

Спасибо.

Не используйте $ logoutUrl.

  <li><a href="?action=logout">Logout</a></li> 

И в вашем php-коде добавьте это. Это приведет вас только к выходу из вашего приложения.

 if(isset($_GET['action']) && $_GET['action'] === 'logout'){ $facebook->destroySession(); } 

Создать файл logout.php

 <?php session_start(); //start session $_SESSION = array(); //clear session array session_destroy(); //destroy session ?> <!doctype html> <html> <head> <meta charset="utf-8"> <title>Log Out</title> </head> <body> <p>You have successfully logged out!</p> <p>Return to the <a href="....index.php">Home</a> page</p> </body> </html> 

И измените свой код, где вы проверяете статус пользователя

 if ($user) { $params = array( 'next' => 'http://....../logout.php' ); $logoutUrl = $facebook->getLogoutUrl($params); } else { $loginUrl = $facebook->getLoginUrl(); } 

Используйте loglogUrl для выхода из системы пользователя.

 <?php if ($user): ?> <?php echo "Welcome, ".$me['first_name']. " " .$me['last_name'] ." <br />"; echo "Id: " . $me['id'] ." <br />"; ?> <a href="<?php echo $logoutUrl; ?>"> Logout </a> <br /> <?php else: ?> <a href="<?php echo $loginUrl; ?>"> <img src="http://img.ruphp.com/sdk/4li2k73z.gif"> </a> <?php endif ?> 

Надеюсь, он будет работать нормально