21 votes

Le SDK JavaScript de Facebook FB.logout() ne met pas fin à la session utilisateur

Je tente de déconnecter un utilisateur de Facebook avec le SDK Facebook JS, cependant en appelant :

FB.logout(function(response){
    console.log(response);
});

renvoie : response.status == "connected"

Et ce n'est qu'après avoir rafraîchi la page que le SDK se rend compte que la session est terminée. Quelqu'un sait ce qui pourrait causer ce comportement ? Ce code fonctionnait précédemment dans mon application et a récemment commencé à se comporter de cette manière.

Un autre exemple en utilisant FireBug :

entrer la description de l'image ici

0voto

Abdul Ahad Points 1866

J'ai rencontré un problème similaire. J'ai utilisé FB.getLoginStatus() après la déconnexion.

0voto

Shaun Points 94

Cela semble cassé sur Facebook. Sur FB rell, vous pouvez vous connecter mais la fonction de déconnexion ne fonctionne pas. http://www.fbrell.com/auth/all-in-one

0voto

sajanyamaha Points 1642

Ok les gars, j'ai trouvé une solution pour ça :

Ajoutez un événement onClick pour la balise de déconnexion de cette manière

onclick="FB.logout(function() { document.location.reload(); });"

Tout ensemble :

[[déconnexion]](#)

0voto

aamir sajjad Points 1101

Dans l'application asp.net mvc je l'ai fait comme suit.


Déconnexion

$(function () {

    $(".logOff").click(function () {

        //vérifier si la déconnexion est
        FB.getLoginStatus(function (response) {
            console.log('à l'intérieur du statut de connexion');
            if (response.status === 'connected') {
                // l'utilisateur est connecté et a authentifié votre
                // application, et response.authResponse fournit
                // l'ID de l'utilisateur, un jeton d'accès valide, une
                // demande signée, et le moment où le jeton d'accès
                // et la demande signée expirent chacun
                var uid = response.authResponse.userID;
                var accessToken = response.authResponse.accessToken;
                FB.logout(function (response) {

                    FB.Auth.setAuthResponse(null, 'inconnu');

                });
            } else if (response.status === 'not_authorized') {
                // l'utilisateur est connecté à Facebook,
                // mais n'a pas authentifié votre application

            } else {
                // l'utilisateur n'est pas connecté à Facebook.
                console.log('statut de la réponse non connecté');
            }
        });
        window.location.href = '@Url.Action("LogOff", "Account")';

    });

-1voto

Amine Points 1

Il se peut que cela ne fonctionne pas parce que vous n'incluez pas votre clé d'application Facebook. Cela fonctionne pour moi de cette manière :

 Ext.get('auth-logoutlink').on('click', function(){   
                  FB.getLoginStatus(function (response) {
                    if (response.authResponse) {
                       window.location = "https://www.facebook.com/logout.php?confirm=1&api_key=**MYAPIKEY**&next=" +
                         '**MYWEBSITEURL**' +
                         "&access_token=" + response.authResponse.accessToken;
                    } else {
                       //MASQUER **BOUTON DE DÉCONNEXION**
                       //AFFICHER **BOUTON DE CONNEXION**
                    }
                  });
        });

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X