Comment déconnecter l'utilisateur à l'aide de facebook SDK?
Je suis à l'aide d'un facebook
connecter pour mon site web à l'aide de facebook php sdk
.
Ce que j'ai remarqué est la logout
lien ne doit pas faire n'importe quoi. Après je déconnexion, l'utilisateur peut naviguer sur le site. Voici mon code dans facebook.php
:
<?php
require 'src/facebook.php';
$facebook = new Facebook(array(
'appId' => '*************',
'secret' => '******************************',
));
$user = $facebook->getUser();
$loginUrl = $facebook->getLoginUrl();
echo "<a href='$loginUrl'>login</a>";
$logoutUrl = $facebook->getLogoutUrl();
echo $loginUrl;
if($user){
session_start() ;
$_SESSION['user_info'] = $user;
$_SESSION['user_pro']= $facebook->api('/me');
print_r($_SESSION);
}
else{
echo 'not logged in ';
}
echo "<a href='example.com/logout.php'>log out </a>"
?>
Ce code
fonctionne très bien sur ouvrir une session. Le journal de lien de détruire la session. Voici l'en-tête de la page:
<?php
print_r($_SESSION) ;
header('example.com') ;
?>
Le problème avec mon logout.php
page est qu'il ne détecte pas la session. Je ne sais pas si c'est un facebook api
problème ou mon php
problème.
Comment vous déconnecter l'utilisateur à l'aide de l'facebook SDK?
Les utilisateurs peuvent déconnexion de facebook... ils ne peuvent pas vous déconnecter de votre site.
ils peuvent l'être si on détruit la session
ils peuvent l'être si on détruit la session
OriginalL'auteur Mina Gabriel | 2012-07-14
Vous devez vous connecter pour publier un commentaire.
Vous pouvez vous déconnecter de votre site ainsi que de facebook comme le suivi en fournissant l'url de votre site pour le paramètre suivant et en détruisant session
Vous avez également à la session de votre site web ET vous devez prévenir votre site web à partir automatiquement se souvenir de votre nom d'utilisateur et le ré-enregistrement immédiatement.
Désactiver le code d'auto-connecte votre nom d'utilisateur et essayez de vous déconnecter à nouveau. Détruire la session n'empêchera pas votre site à partir de la création d'une nouvelle marque de session valide pour le rappeler à l'utilisateur.
session_destroy()
et ça ne fonctionne jamais , je fais ce que j'ai écrit dans ma réponse , je l'espère, sur le long terme, il ne fait pas de pausesCela fonctionne pour moi. Ce qui s'est passé dans mon cas, l'URL que
getLogoutUrl()
a été la production avaitaccess_token=0
. J'ai donc suivi l'exemple ci-dessus en ajoutant manuellement le jeton d'accès à l'aide$facebook->getAccessToken();
. Mais je me demande juste pourquoi legetLogoutUrl()
fonction ne pouvais pas l'ajouter, et utilisé zéro à la place. Des idées?Cela a fonctionné pour moi. Il se connecte à me sortir de Facebook et détruit la session pour mon application. Pourquoi n'est-ce pas documenté nulle part? Est-ce encore le "officielle" de la solution?
OriginalL'auteur Needhi Agrawal
Voici le PHP déconnexion code pour mon site web qui se connecte à un utilisateur de facebook. Vous n'avez pas à détruire la session pour déconnecter l'utilisateur, tout ce que vous techniquement avez à faire est de signal de votre propre site web que cette session ne peut pas être utilisé pour permettre à l'utilisateur.
logout.php:
index.php:
login.php:
Alors, dans chaque fichier php que vous voulez empêcher l'accès sans un utilisateur connecté, mettez-le en haut:
Avec ce code, l'utilisateur est automatiquement connecté, et si elles font appel à la déconnexion du code, le site ne va pas les laisser jusqu'à ce qu'ils se connecter à nouveau.
OriginalL'auteur Eric Leschinski
La déconnexion des utilisateurs de facebook peut être difficile. Cela fonctionne pour moi
wp_redirect ne fonctionne pas en dehors de WordPress. Utilisation
header("Location: $logout"); exit;
OriginalL'auteur Nicola Peluchetti
Vous devez appeler
session_start()
sur toutes les pages où les séances seront utilisés.À quelqu'un journal de la session (c'est à dire. claire, vous pouvez utiliser
session_destroy()
.Enfin,
header('example.com');
ne sera pas réellement faire quelque chose, avez-vous l'intention d'effectuer une redirection? Si oui, vous devez utiliser `header('location: http://example.com/');EDIT: Désolé je n'avais pas lu correctement, ce qui est le second extrait de code? C'est que votre logout.php la page?
Autant que je suis conscient avec l'Facebook API, lorsque vous appelez
getLogoutUrl()
, qui est l'endroit où vous devez envoyer vos utilisateurs lorsqu'ils cliquent sur le lien, et non votre proprelogout.php
.downvote toutes les réponses, et même à ma question ? avec en disant un seul mot ...
Putain idiots, I +1 à votre question d'équilibre, puisque vous n'avez toujours pas résolu.
OriginalL'auteur Rudi Visser
RÉPONSE
si l'ouverture de session une session est initialisée , il semble que si nous avons mis un de ces
session
variable à null, il rompt le journal en fonction , et demander à l'utilisateur de se connecter à nouveauOriginalL'auteur Mina Gabriel