Original Wenn Sie falsche Übersetzungen haben, lassen Sie es uns bitte wissen.
User Objects (Hinweis: Die auf dieser Seite erwähnten Open ID-Funktionen werden voraussichtlich nicht mehr unterstützt und entfernt. Weitere Informationen finden Sie unter OpenID 2.0 Support Turndown (https://cloud.google.com/appengine/docs/deprecations). Siehe / open_id).)
Eine Instanz der Benutzerklasse repräsentiert einen Benutzer. Benutzerinstanzen sind eindeutig und können verglichen werden. Wenn die beiden Instanzen identisch sind, gehören die beiden demselben Benutzer. Die Anwendung ruft die Funktion users.get_current_user () auf, um den Benutzer aufzurufen Sie können auf die Benutzerinstanz zugreifen.
from google.appengine.api import users
user = users.get_current_user()
if not user:
# The user is not signed in.
else:
print "Hello, %s!" % user.nickname()
Sie können die Funktion users.get_current_user () verwenden, unabhängig davon, welche Authentifizierungsoption Sie für Ihre Anwendung verwenden. Man kann sagen, dass eine Benutzerinstanz aus einer E-Mail-Adresse besteht.
user = users.User("[email protected]")
Wenn Sie federated_identity haben, können Sie alternativ auch die Benutzerinstanz wie folgt verwenden.
user = users.User(federated_identity="http://example.com/id/ajohnson")
Wenn der Inhalt des Nutzers mit einer E-Mail-Adresse aufgerufen wird, die nicht mit Ihrem vorhandenen Google-Konto übereinstimmt, wird ein neues Nutzerobjekt erstellt, das nicht mit Ihrem tatsächlichen Google-Konto übereinstimmt. Dies passiert auch, wenn jemand ein anderes Google-Konto erstellt, sobald sein Benutzerobjekt in der Datenbank registriert ist. Bereits registrierte Benutzerinformationen stimmen nicht überein, wenn ein neues Google-Konto erstellt wird. Beim Ausführen des Entwicklungsservers werden alle registrierten Benutzerobjekte als gültige Google-Konten behandelt. Das Benutzerobjekt eines gültigen Benutzers gibt jedem Benutzer eine eindeutige ID, die sich erst ändert, wenn der Benutzer seine E-Mail-Adresse ändert. Die user_id () -Methode gibt die ID als Zeichenfolge zurück. Das Benutzerobjekt hat dieselbe Form, unabhängig davon, welche Authentifizierungsmethode Sie in Ihrer Anwendung verwenden. Wenn Sie die Authentifizierungsoption von Ihrem Google-Konto in OpenID ändern, bleibt Ihr vorhandenes Benutzerobjekt gültig.
Die Benutzer-ID ist fest. Die Benutzer-ID kann als Schlüsselname oder Zeichenfolge verwendet werden. Wenn Sie Benutzerinformationen verwenden, möchten Sie daher wahrscheinlich Ihre Benutzer-ID (und möglicherweise Ihre letzte E-Mail-Adresse, um mit Ihnen per E-Mail zu kommunizieren) speichern. Das folgende Beispiel zeigt, wie der Benutzer mit der Benutzer-ID abgeglichen wird.
from google.appengine.api import users
from google.appengine.ext import ndb
class UserPrefs(ndb.Model):
userid = ndb.StringProperty()
user = users.get_current_user()
if user:
q = ndb.gql("SELECT * FROM UserPrefs WHERE userid = :1", user.user_id())
userprefs = q.get()
Wir empfehlen dringend, die UserProperty nicht in der Datenbank zu speichern, da sie Ihre E-Mail-Adresse und Ihre eindeutige ID enthält. Wenn der Benutzer seine E-Mail-Adresse ändert, stimmt er nicht überein, wenn versucht wird, den gespeicherten alten Benutzer mit dem neuen Benutzer abzugleichen. Stattdessen ist es besser, eine benutzerspezifische ID anzugeben und diese abzugleichen.