2013-07-26 5 views
5

Das Submodul "Benutzer" in Google App Engine verwendet "Google-Konto" anstelle einer Anmeldung "G +". Sind die Basis-IDs gleich? Ich möchte ihre Anmeldungen mit meinen eigenen Benutzerdatensätzen verknüpfen ...Wie funktioniert die Anmeldung bei Google+ im Vergleich zu googleappengine.api.user?

+0

Können Sie hier zusätzlichen Kontext hinzufügen? Welche API-Aufrufe machst du? Verwenden Sie OAuth 2.0/OpenID/etc? auf App Engine? In welcher Sprache arbeiten Sie? – Joanna

+0

In Python kann man google.appengine.api.user.get_current_user() aufrufen, das zum Google-Konto geht (zB hier ein Beispiel aus einer Codenvy-Vorlage: http://bjorke-gap1.appspot.com) - das geht "Google-Konten" anmelden. Was ich gerne wissen möchte, ist, wie sich die Werte im zurückgegebenen Objekt auf die Elemente beziehen, die von der G + -Anmeldung zurückgegeben werden. Ist das G + id_token immer der gleiche Wert wie eine Google-Konten-ID oder ist die Verbindung getrennt? – bjorke

+0

Wow, Grillen .... Ich benutze G + Signin, und auch nicht die App Engine Datenspeicher "Benutzer" Eigenschaft wegen dieser Verwirrung (sollte ich es verwenden, oder nur die verschiedenen oauth2-related Anmeldeinformationen wie Benutzer-ID und Name als separate Eigenschaften?) – bjorke

Antwort

0

Sie sollten ein eigenes Benutzermodell erstellen, das Informationen über registrierte Benutzer enthält. Mit users.get_current_user() können Sie eine E-Mail-Adresse aus dem Benutzer-Google-Konto nehmen und ihn in eine App einloggen.

1

Wenn Sie die über die ids fragen ...

Im Einzelnen:

mit

user = users.get_current_user()

gibt ein Benutzerobjekt und das ist nicht das, was Sie sich beziehen (in Bezug auf Ihr Kommentar)

Die user_id() ist, was Sie reffering für die Benutzer api:

user = users.get_current_user() 
user.user_id() 

Vom Docs

If the email address is associated with a Google account, user_id returns the unique permanent ID of the user, a str. This ID is always the same for the user regardless of whether the user changes her email address. 

If the email address is not associated with a Google account, user_id returns None. 

Jetzt aus meiner Erfahrung meines GoogleID nach user_id() ist xxx8005350796570706xx und meine Google-Plus-Profil-ID ist 102445631084043565507, die völlig unterschiedlich sind. Ich habe dies auch mit meinen Apps und Google + bekannten Followern überprüft und keine Ähnlichkeit festgestellt.

1

Ich würde sagen, sie sind nicht das Gleiche, aber ja, Sie können sie zuordnen.

Wenn Sie den in GAE (oder Android) integrierten Support für grundlegende Google-Konten (Benutzer) verwendet haben, um einen Benutzer zu authentifizieren, haben Sie ihre E-Mail-Adresse, die ihr Google-Konto eindeutig identifiziert.

Auf Google+, verwenden Sie den E-Mail-Umfang Zugriff auf ihre E-Mail-Adresse zu gewinnen:
https://developers.google.com/+/api/oauth#email-scopes

Diese E-Mail-Adressen entsprechen sollten, so dass dies ermöglicht es Ihnen, die Google und Google+ Konten zu verknüpfen. Der Nachteil dieser Methode IMO ist, wenn Sie nicht bereits die g + E-Mail-Bereich anfordern, dann müssen Sie es hinzufügen.

+0

nicht wahr, dass die E-Mail eine eindeutige Kennung ist, die sich nicht ändern kann. Es kann in Google-Apps (nicht Google Mail) Szenarien ändern.Sie sollten die eindeutige Kennung und nicht die E-Mail verwenden, wenn Sie diese Fälle abdecken möchten. –