gapi.auth.signOut(); ne fonctionne pas, je suis perdu
Ci-dessous le code que j'utilise la connexion avec google. J'ai un élément sur login.php avec id d'autoriser le bouton -. Lorsque l'utilisateur clique dessus, il se connecte très bien.
J'ai un lien de déconnexion dans mon fichier d'en-tête. Lorsque je clique sur déconnexion, il appelle gapi.auth.signOut();
puis il détruit la session et la renvoie à login.php
Ce qui se passe autant que je peux dire, mais ensuite il enregistre tout le droit de l'utilisateur sur notre site avec google. C'est une douleur que certains de nos utilisateurs passer de google à facebook connexions.
Merci d'avance pour toute aide.
function handleClientLoad() {
gapi.client.setApiKey(apiKey);
window.setTimeout(checkAuth, 1);
}
function checkAuth() {
gapi.auth.authorize({client_id: clientId, scope: scopes, immediate: true}, handleAuthResult);
}
function handleAuthResult(authResult) {
var authorizeButton = document.getElementById('authorize-button');
if (authResult && !authResult.error) {
//authorizeButton.style.visibility = 'hidden';
makeApiCall();
} else {
//authorizeButton.style.visibility = '';
authorizeButton.onclick = handleAuthClick;
}
}
function handleAuthClick(event) {
gapi.auth.authorize({client_id: clientId, scope: scopes, immediate: false}, handleAuthResult);
return false;
}
function signOut() {
gapi.auth.signOut();
}
function makeApiCall() {
gapi.client.load('oauth2', 'v2', function() {
var request = gapi.client.oauth2.userinfo.get();
request.execute(function(logResponse) {
var myJSON = {
"myFirstName": logResponse.given_name,
"myLastName": logResponse.family_name,
"name": logResponse.name,
"socialEmailAddress": logResponse.email
};
gapi.client.load('plus', 'v1', function() {
var request = gapi.client.plus.people.get({
'userId': 'me'
});
request.execute(function(logResponse2) {
//alert(JSON.stringify(logResponse));
myJSON['profilePicture'] = logResponse2.image.url;
myJSON['socialId'] = logResponse2.id;
//alert(JSON.stringify(myJSON));
$.ajax({
type: "POST",
url: "includes/login-ajax.php",
data: "function=googleLogin&data=" + JSON.stringify(myJSON),
dataType: "html",
success: function(msg) {
if (msg == 1) {
//window.location = "settings.php";
}
}
});
});
});
});
});
}
OriginalL'auteur jcopeland | 2014-02-28
Vous devez vous connecter pour publier un commentaire.
Assurez-vous que vous avez configuré votre cookie-politique à une valeur autre que
none
dans votre signe-dans le code du bouton. Par exemple:Noter que le signe ne fonctionnera pas si vous exécutez à partir de localhost.
Ça ne marche toujours pas. J'ai un lien de déconnexion que les liens vers une page php. J'ai le texte suivant dans la page. <script> //déconnexion de google gapi.auth.signOut(); </script>
+1 je ne savais pas de signe de ne pas courir à partir de localhost. Été cogner ma tête pendant une heure. Merci! (Je voudrais que Google serait document que sur leur site)
comment tester la
signOut()
alors?Test
signOut()
à partir d'un serveur web de test qui n'est pas localhost, un moyen facile est d'utiliser ngrok.OriginalL'auteur class
Question bizarre, mais résolu mon problème en rendant la signin bouton (caché), même si l'utilisateur est authentifié.
Voir plein de question/réponse ici https://stackoverflow.com/a/19356354/353985
Vous avez raison à propos de la routine de rappel. Je vais certainement essayer le méta.
OriginalL'auteur redochka
Je suis tombé sur le même problème aujourd'hui. Je recherche de la solution de l'ensemble. La seule solution qui a fonctionné pour moi, c'est par le biais de révoquer comme expliqué ici
J'ai stocké access_token dans la session qui est nécessaire lors de la révoquer
Ci-dessous mon code que vous trouverez peut-être utile
après 3 ans est venu à travers le même problème une fois de plus & trouvé ma réponse, gapi.auth.signOut() n'est pas de vous déconnecter & vous devriez avoir si cela est synchrone au moins, selon leur documentation, de se demander pourquoi ce qui n'était pas acceptée comme cela semble que la solution de travail.
ce travail autour de ce qui semble être de travailler plus tôt ne fonctionne plus, vous ne savez pas si il y a moyen de permettre à l'utilisateur de déconnexion de l'application, tels que fb ne, serait plutôt de prendre gplus hors de connexions
OriginalL'auteur Naga