2010-11-29 3 views
6

Je fais une certaine intégration avec Facebook sur un projet (en utilisant graph api) et tout fonctionnait bien jusqu'à maintenant j'ai découvert que facebook n'efface pas ma session quand je clique sur le déconnexion url. Je fais par php fermeture de session, pas javascript, donc l'URL logout ressemble:facebook connect n'efface pas le cookie de session lors de la déconnexion

https://www.facebook.com/logout.php?next=url&access_token=token 

Après avoir cliqué sur ce lien l'utilisateur est connecté sur facebook, mais la session existe toujours sur mon site. Pour effacer la session, je dois actualiser la page une fois de plus après avoir cliqué sur cette URL. C'est un comportement étrange, à mon avis.

Qu'est-ce que vous en pensez? J'ai même essayé de supprimer personnellement le cookie Facebook, mais il est toujours là, et il est effacé seulement après avoir appuyé sur le bouton d'actualisation de mon navigateur.

p.s. pour obtenir la session facebook, je fais quelque chose comme ceci:

My_Facebook_Helper::instance()->getSession(); //it should be === null if it doesn't exist 

p.p.s. ça pourrait être un bug? Je ne me souviens pas d'avoir eu ce problème il y a environ une semaine quand j'ai commencé à implémenter ceci

Répondre

0

Je viens juste de résoudre un problème simulaire aujourd'hui. Essayez d'utiliser ceci pour obtenir votre session:

$session = $facebook->getSession(); 

Et cela pourrait aussi aider à l'url logout:

$logoutUrl = $facebook->getLogoutUrl(array('next' => $url, 'session_key' => $session['session_key'])); 

Hope it helps!

+0

non, la session est toujours là et j'ai besoin de rafraîchir la page pour disparaître :). mais merci pour votre réponse! – misterjinx

+0

Donc, après l'actualisation, la session est terminée? Eh bien, si oui, faites-le rafraîchir après automatiquement. Un peu plus de détails pourrait aider! Bonne chance! :) – ryryan

+0

oui ... j'ai un peu fait une solution de contournement pour résoudre cela après tout, en supprimant la session moi-même si certaines conditions sont remplies :) merci! – misterjinx

0

J'ai essayé

$logoutUrl = $facebook->getLogoutUrl(array('next' => 'some url', 'session_key' => $session_key)) . 'session_key=null'; 
1

j'ai rencontré ce bug et a réalisé qu'il était pas que la session n'a pas été éclairci, mais si vous avez accès en ligne, il vous obtiendrez automatiquement une nouvelle session.

+0

Ce n'est pas le cas puisque je n'ai pas offline_access :) – misterjinx

1

Essayez de trouver la fonction formatData quelque part à LoginWindow (AS3) et trouver cette ligne:

vars.redirect_uri = FacebookURLDefaults.LOGIN_SUCCESS_URL 

Modifiez la valeur pour ' http://www.facebook.com/ 'et se déconnecter de cette page html une fois connecté.

Ceci est une solution temporaire pour se déconnecter si vous êtes développeur, pas l'utilisateur final.

Questions connexes