2017-01-09 1 views
2

Ich verwende Google Auth Login für meine Anwendung. Meine SignIn Schaltfläche befindet sich auf der Anmeldeseite und meine Abmeldung ist ein Teil meiner Kopfzeile, die in meiner gesamten Anwendung enthalten ist. Beim Klicken auf Logout-Button am in der Lage, mir den Benutzer aus meiner Anwendung nicht zu unterzeichnenGoogle OAuth2.0-Abmeldung funktioniert nicht auf localhost, aber in der Konsole funktioniert

Login.tpl Code (Welche Zeichen in Schaltfläche enthält)

<div align="middle" class="g-signin2" data-onsuccess="onSignIn"></div> 
<meta name="google-signin-client_id" content="CLIENT_ID"> 

ich in der Lage bin einzuloggen, aber nicht in der Lage, logout.Logout-Schaltfläche ist ein Teil der header.tpl, die in allen Dateien enthalten ist, aber ich bekomme den Fehler in Fettschrift oben markiert.

header.tpl Code

<meta name="google-signin-client_id" content="CLIENT_ID"> 

<a href="https://stackoverflow.com/users/auth/login" class = "logout"><i class="fa fa-sign-out pull-right"></i> Log Out</a> 

Mein JS Code

$(".logout").click(function(event) { 
event.preventDefault(); 
gapi.load('auth2', function() { 
     var auth2 = gapi.auth2.init({ 
      client_id: 'CLIENT_ID', 
      cookiepolicy: 'single_host_origin' 
     }); 
     auth2.then(function(){ 
      // this get called right after token manager is started 
      auth2.signOut(); 
      console.log('User signed out.'); 
     }); 
    }); 
window.location = $(this).attr('href'); 
}); 

Der Code nie in den Block einfährt, in dem signout definiert ist und daher bin ich nicht so gut in der Konsole immer etwas.

Allerdings, wenn ich diesen Code in der Konsole ausgeführt wird, wird der Benutzer erfolgreich abgemeldet, aber das funktioniert nicht auf der Anwendung, wenn ich es auf localhost leitete

Alle Leitungen sehr geschätzt werden würde.

+0

Mögliche Duplikate von [Wie Abmelden eines Benutzers nach der Seitenaktualisierung?] (Http://stackoverflow.com/questions/35118433/how-to-sign-out-a-user-after-page-refresh) – DaImTo

Antwort

0

Ich fand die Lösung, es scheint, dass Sie SignOut Methode nur aufrufen können, nachdem der SigninCallback ausgelöst hat. Soweit ich das beurteilen kann, besteht die einzige Möglichkeit, signinCallback zu feuern, darin, eine Anmelde-Schaltfläche auf der Seite anzubringen.

Einen versteckten Anmelde-Button zu behalten, wo meine Abmelde-Taste geschrieben wurde, machte den Trick für mich.

dies in header.tpl enthält, wo meine Logout-Button

geschrieben
<div style = "display:none" align="middle" class="g-signin2" data-cookiepolicy='single_host_origin' data-onsuccess="onSignIn"></div> 
1

Ich war in der Lage, es zu bekommen auf localhost mit dem folgenden Code zu arbeiten:

auth2.signOut().then(function() { 
    auth2.disconnect(); 
    gapi.auth2.getAuthInstance().currentUser.get().reloadAuthResponse(); 
}); 

überprüfen Sie die Diskussion über out this github page

Verwandte Themen