J'ai une application qui s'intègre à Facebook en utilisant Oauth 2.
Je peux m'autoriser auprès de FB et interroger leurs API REST et Graph parfaitement bien, mais lorsque j'autorise une session active du navigateur est créée avec FB. Je peux ensuite me déconnecter de mon application sans problème, mais la session avec FB persiste, de sorte que si quelqu'un d'autre utilise le navigateur, il verra le compte FB de l'utilisateur précédent (à moins que ce dernier ne se déconnecte manuellement de FB également).
Les mesures que je prends pour obtenir l'autorisation sont les suivantes :
- Appel [LIEN : graph.facebook.com/oauth/authorize?client_id...]
Cette étape ouvre une fenêtre de connexion à Facebook si le navigateur de l'utilisateur n'a pas déjà une session FB active. Une fois qu'il s'est connecté à Facebook, il est redirigé vers mon site avec un code que je peux échanger contre un jeton oauth.
- Appelez [LINK : graph.facebook.com/oauth/access_token?client_id..] avec le code de (1)
J'ai maintenant un jeton Oauth, et le navigateur de l'utilisateur est connecté à mon site et à FB.
- J'appelle un tas d'API pour faire des choses : par exemple [LINK : graph.facebook.com/me?access_token=..]
Disons que mon utilisateur souhaite se déconnecter de mon site. Les conditions générales de Facebook exigent que je procède à une déconnexion unique, de sorte que lorsque l'utilisateur se déconnecte de mon site, il est également déconnecté de Facebook. Certains prétendent que c'est un peu stupide, mais je suis heureux de m'y conformer s'il existe un moyen d'y parvenir.
J'ai vu des suggestions à ce sujet :
A. J'utilise l'API Javascript pour me déconnecter : FB.Connect.logout(). J'ai essayé de l'utiliser, mais cela n'a pas fonctionné et je ne sais pas exactement comment, car je n'utilise pas l'API Javascript de quelque manière que ce soit sur mon site. La session n'est pas maintenue ou créée par l'API Javascript, donc je ne sais pas non plus comment elle est censée expirer.
B. Utilisez [LINK : facebook.com/logout.php]. Cette solution a été suggérée par un administrateur dans les forums Facebook il y a quelque temps. L'exemple donné concernait l'ancienne façon d'obtenir des sessions FB (non-oauth), je ne pense donc pas pouvoir l'appliquer dans mon cas.
C. Utiliser l'ancienne api REST expireSession ou revokeAuthorization. J'ai essayé ces deux méthodes et, bien qu'elles fassent expirer le jeton Oauth, elles n'invalident pas la session que le navigateur utilise actuellement, ce qui n'a aucun effet, l'utilisateur n'étant pas déconnecté de Facebook.
Je suis un peu perdue, la documentation de Facebook est inégale, ambiguë et assez pauvre. L'assistance sur les forums est inexistante, pour l'instant je ne peux même pas me connecter au forum facebook, et à part cela, leur propre intégration FB Connect ne fonctionne même pas sur le forum lui-même. Cela n'inspire pas vraiment confiance.
Merci pour toute aide que vous pourrez m'apporter. Derek
ps. J'ai dû changer HTTPS en LINK, pas assez de karma pour poster des liens, ce qui est probablement assez juste.
2 votes
Sean a raison, et vous devriez l'écouter, car il a plus de réputation que vous, ce qui lui donne raison. Si je suis connecté à Facebook, que j'arrive sur votre site, que je l'utilise (ou que je décide de le quitter en étant déçu), puis que je me déconnecte, je serais surpris et peut-être même un peu outré si je découvrais que j'ai également été déconnecté de Facebook. Si l'interface utilisateur indiquait clairement que cela se produirait, très bien, mais s'il s'agit simplement d'un bouton dans le coin supérieur droit de la page qui dit "Déconnexion", avec peut-être un logo Facebook flottant à proximité, c'est assez surprenant. La surprise n'est pas une caractéristique d'une bonne interface utilisateur.
6 votes
Tom : développeurs.facebook.com/politique Ligne 6.
1 votes
@DigitalPrecision : Un excellent lien, qui montre que même Facebook n'arrive pas à faire les choses correctement.
3 votes
Je suis d'accord. Nous avons dû faire des pieds et des mains pour que cela fonctionne dans notre application. Les documents sont horribles.
1 votes
J'ai exactement le problème inverse : lorsque je me déconnecte de mon application maison, je suis instantanément déconnecté de facebook aussi.