2

Ich habe eine funktionierende Lösung, aber es ist unglaublich kompliziert!Wie kann ich den Nutzer mit Google Sign-In auf meiner Website unterschreiben?

Erstens, ich brauche einen Code zum Download:

<script src="https://apis.google.com/js/platform.js"></script> 

Zweite und dritte, ich brauche das auth2 Modul zum Download bereit. Danach brauche ich client_app_id bereitzustellen asynchron eine Auth-Objektinstanz zu erhalten:

gapi.load('auth2', function() { 
     gapi.auth2.init({ 
      client_id: '__________.apps.googleusercontent.com' 
     }); 
    }); 

Viertens fuh, kann ich mich einloggen endlich aus:

  gapi.auth2.getAuthInstance().signOut().then(function() { 
        ... 
      }); 

Bin ich etwas falsch? Kann das einfacher gemacht werden? Ich habe einige Dokumente gefunden here und here

Antwort

1

Das ist richtig. Es ist kompliziert, aber alle notwendigen Schritte.

Eine leichte Optimierung ist, dass Sie etwas kleiner als platform.js anfordern können. Nämlich https://apis.google.com/js/auth2:signin2.js

Was ich auch einen Rückruf eingestellt ist, so etwas wie dieses:

<meta name="google-signin-client_id" content="{{ OAUTH2_CLIENT_ID }}"> 

<script src="https://apis.google.com/js/auth2:signin2.js?onload=googleAPILoaded"></script> 
<script> 
window.googleAPILoaded = function() { 
    gapi.auth2.init(); 
    gapi.auth2.getAuthInstance() 
    .then(function() { 
     this.signOut().then(serverSignout); 
    }); 
} 
</script> 
</head> 
+0

AUTH2: signin2.js Datei 15K hat, während packages.js 16K hat. auth2: signin2.js zeigt mir 307 Interne Weiterleitung, so dass es möglicherweise länger heruntergeladen wird – Dan

1

Hier ist, wie Sie Google's Sign-In button Vorlage verwenden, können die Login & Erteilung von Berechtigungen Prozess in einer etwas elegantere Weise zu initialisieren:

<meta name="google-signin-client_id" content="{{ OAUTH2_CLIENT_ID }}"> 

<script src="https://apis.google.com/js/platform.js?onload=onLoad" async defer></script> 

<div id="google-signin-button" 
    class="g-signin2" 
    data-width="170" 
    data-height="30" 
    data-onsuccess="onSignIn" 
    data-onfailure="onSignInFailure"> 
</div> 
function onSignIn(googleUser) { 
    var profile = googleUser.getBasicProfile(); 
    var idToken = googleUser.getAuthResponse().id_token; 
} 

function onSignOut(){ 
    var auth2 = gapi.auth2.getAuthInstance(); 
    auth2.signOut(); 
} 
+0

Ich weiß das, aber weil ich Redirect von der Anmeldeseite (wo gapi.auth2.getAuthInstance Variable existierte) auf die Anwendungsseite durchführen. Wahrscheinlich ist dieser Schritt falsch, Google schlug vor, dass ich für alles eine einzelne Seite haben sollte. Glauben Sie auch, dass die Login-Seite überflüssig ist? – Dan

Verwandte Themen