Je n'arrive pas à obtenir une application facebook connect que je construis pour déconnecter l'utilisateur (désolé, pas d'URL car elle est toujours en développement). Chaque fois que l'utilisateur clique sur un lien avec la classe "déconnexion", le JS suivant fonctionne et semble même afficher le modal FB indiquant que l'utilisateur a été déconnecté. Après avoir atteint le rappel ci-dessusProblème lors de la déconnexion d'un site de connexion Facebook et de la destruction de sessions
$(document).ready(function(){
$('.logout').click(function(){
//Kill facebook Session
FB.Connect.logout(function() {
window.location = $('.logout').attr("href");
});
});
});
, la JS envoie à l'utilisateur de la page où PHP force déconnexion à nouveau la suppression d'une session personnalisée et assure que la session FB a été supprimée. Ensuite, l'utilisateur est renvoyé à la page sur laquelle il était lorsqu'il a cliqué sur le lien "Déconnexion".
//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) : ''));
Cependant, ce processus aboutit ensemble à l'utilisateur étant de retour là où ils étaient et encore connecté. Un second clic sur le lien semble faire l'affaire et de supprimer la session cependant. J'ai surveillé firebug (w/firecookie) et la page de déconnexion de PHP rapporte la suppression des cookies de session FB - pourtant la prochaine page chargée semble toujours les utiliser ?!
Si quelqu'un sait comment complètement
DESTROY TOUS LES FACEBOOKS
ahem ... sessions alors s'il vous plaît parler.
: EDIT: J'ai même essayé de supprimer manuellement tous les cookies sur la page de fermeture de session et il échoue encore
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']);
}
}
Comment PHP peut-il lire la session (à partir des cookies) si le Javascript vient d'effacer tous les cookies? En outre, le LogoutAndRedirect a le même problème que l'utilisation de la déconnexion, puis window.location (qui est ce que j'utilise). – Xeoncross
javascript détruit le cookie PHP_SESSION? Les données sont stockées quelque part, ce qui signifie soit un cookie soit un paramètre post/get request. – Les
Je sais que les pages de canevas ont des paramètres GET pour chaque page - mais pas pour connecter des sites. Et puisque window.location est utilisé, aucune donnée POST n'est envoyée non plus.Quoi qu'il en soit, votre recommandation m'amène à penser maintenant à d'autres choses que je peux tester. J'accepterai donc votre réponse et je rapporterai mes conclusions. – Xeoncross