0

Ich habe ein Projekt mit Python in Google App Engine erstellt. Ich möchte Google auf meiner Website anmelden.Google Anmelden für Python Google App Engine

Ich habe versucht, Google für Web melden Sie sich an verwenden und es funktioniert gut, aber ich weiß nicht, wie API-Aufrufe von Server zu machen, dass Benutzer, um sicherzustellen, angemeldet.

Ich habe versucht, Benutzer verwenden == > user = users.get_current_user() dann den Benutzer-ID verwenden, API-Aufrufe ==> "https://www.googleapis.com/plus/v1/people/ "+ self.request.get ('id') +"? Felder = Bild & key = SOME_KEY"

zu machen

Das Problem ist, dass die ID nicht die ist, die ich verwenden sollte. Wenn ich diese ID und die, die ich in der Javascripte bekomme, vergleichen, sind sie nicht gleich. Auch in der Web-API erwähnten sie, dass ich diese ID direkt an den Server senden sollte (ich weiß nicht, warum). Ich möchte wissen, wie ich die richtige ID in meiner Python-Anwendung bekommen kann.

// Senden Sie das nicht direkt an Ihren Server!

<html lang="en"> 
    <head> 
    <meta name="google-signin-scope" content="profile email"> 
    <meta name="google-signin-client_id" content="YOUR_CLIENT_ID.apps.googleusercontent.com"> 
    <script src="https://apis.google.com/js/platform.js" async defer></script> 
    </head> 
    <body> 
    <div class="g-signin2" data-onsuccess="onSignIn" data-theme="dark"></div> 
    <script> 
     function onSignIn(googleUser) { 
     // Useful data for your client-side scripts: 
     var profile = googleUser.getBasicProfile(); 
     console.log("ID: " + profile.getId()); // Don't send this directly to your server! 
     console.log('Full Name: ' + profile.getName()); 
     console.log('Given Name: ' + profile.getGivenName()); 
     console.log('Family Name: ' + profile.getFamilyName()); 
     console.log("Image URL: " + profile.getImageUrl()); 
     console.log("Email: " + profile.getEmail()); 

     // The ID token you need to pass to your backend: 
     var id_token = googleUser.getAuthResponse().id_token; 
     console.log("ID Token: " + id_token); 
     }; 
    </script> 
    </body> 
</html> 
+1

Können die Dokumente in Backend-Auth helfen? https://developers.google.com/identity/sign-in/web/backend-auth ... Es gibt ein Beispiel für die Decodierung eines ID-Tokens mit Python-Bibliothek. Die Klartext-ID ist unsicher und könnte gefälscht werden, sodass Sie diese nicht für die Backend-Authentifizierung verwenden können. Sie müssen ein ID-Token senden und validieren und die Werte daraus extrahieren. –

Antwort

2

Sie nicht Benutzer-ID-API vornehmen können calls.When Sie API machen ruft Server Google auf der API abhängig Sie verschiedene parameters.For passieren müssen ein beispiel, wenn sie die in ihrer gmail verfügbaren etiketten auflisten möchten, verwenden sie die Gmail API und müssen labelid, userid in der get-anfrage übergeben. Hier ist die Dokumentation für das obige Beispiel. https://developers.google.com/gmail/api/v1/reference/users/labels/get Sie können mit dieser API umgehen, indem Sie diese API-Box von Google bereitgestellt ausprobieren. Wie dieses Beispiel hat das gesamte Google-Produkt verschiedene APIs für verschiedene Funktionalitäten und Sie müssen verschiedene Parameter entsprechend der von Ihnen bereitgestellten Dokumentation übergeben.

+0

Ich musste ein Authentifizierungstoken an das Backend übergeben, um auch die API zu verwenden, die ich benötigte. – Arman