У меня не получается получить приложение для подключения к Facebook, которое я создаю для выхода из системы пользователя (извините, нет URL-адреса, так как он все еще в dev). Каждый раз, когда пользователь щелкает ссылку с классом «logout», запускается следующий JS, который, кажется, работает и даже показывает модальный FB, сообщающий, что пользователь вышел из системы.
$(document).ready(function(){
$('.logout').click(function(){
//Kill facebook Session
FB.Connect.logout(function() {
window.location = $('.logout').attr("href");
});
});
});
При достижении обратного вызова, указанного выше, JS отправляет пользователя на страницу выхода из системы, где PHP снова принудительно удаляет пользовательский сеанс и гарантирует, что сеанс FB был удален. Затем пользователь отправляется обратно на страницу, на которой он находился, когда нажимал ссылку «Выйти».
//Remove our site session
Auth::logout();
/* FAIL
//Send user to FB logout page and then back here
$logout_url = $this->fb->get_logout_url( site_url( $return_to ? base64_url_decode($return_to) : '' ) );
// Clear any stored state
$this->fb->clear_cookie_state();
exit(header("Location: ". $logout_url));
*/
//FAIL
//$this->fb->logout( site_url( $return_to ? base64_url_decode($return_to) : '' ) );
//FAIL
//Remove user (is this needed..?)
//$this->fb->set_user(NULL, NULL);
//Remove the FB session cookies (in case the JS didn't)
$this->fb->clear_cookie_state();
// Redirect to privious page
redirect( ( $return_to ? base64_url_decode($return_to) : '') );
Тем не менее, весь этот процесс приводит к тому, что пользователь возвращается туда, где он был и все еще вошел в систему. Второй щелчок по ссылке, похоже, помогает и удаляет сеанс. Я наблюдал за firebug (w / firecookie), и страница выхода из PHP сообщает об удалении файлов cookie сеанса FB - но на следующей загруженной странице они все еще используются?!
Если кто-нибудь знает, как полностью УНИЧТОЖИТЬ ВСЕ FACEBOOKS Гм ... сеансы, тогда, пожалуйста, говорите.
: EDIT:
Я даже пытался вручную удалить все куки на странице выхода из системы, но все равно не получается
if( $_COOKIE ) {
foreach( $_COOKIE as $name => $value ) {
//Get the current cookie config
$params = session_get_cookie_params();
// Delete the cookie from globals
unset($_COOKIE[$name]);
//Delete the cookie on the user_agent
setcookie($name, '', time()-43200, $params['path'], '', $params['secure']);
}
}