Eine Instanz der Klasse
User
repräsentiert einen Nutzer. User-Instanzen sind einmalig und vergleichbar. Wenn zwei Instanzen gleich sind, stehen sie für denselben Nutzer.
Die Anwendung kann auf die User-Instanz für den aktuellen Nutzer durch Aufrufen der Funktion
users.get_current_user()
zugreifen.
Sie können die Funktion
users.get_current_user()
unabhängig davon verwenden, welche Authentifizierungsoption von der Anwendung verwendet wird.
User-Instanzen können auch aus E-Mail-Adressen erstellt werden:
user = users.User("Albert.Johnson@example.com")
Wenn Sie eine federated_identity
haben, können Sie auch damit eine User-Instanz erstellen:
user = users.User(federated_identity="http://example.com/id/ajohnson")
Wenn der User-Konstruktor mit einer E-Mail-Adresse aufgerufen wird, die nicht einem gültigen Google-Konto entspricht, wird das Objekt zwar erstellt, entspricht jedoch keinem tatsächlichen Google-Konto. Dies ist selbst dann der Fall, wenn jemand nach dem Speichern des Objekts ein Google-Konto mit der betreffenden E-Mail-Adresse erstellt. Ein User-Wert mit einer E-Mail-Adresse, die zum Zeitpunkt der Erstellung kein Google-Konto repräsentiert, entspricht niemals einem User-Wert, der einen realen Nutzer repräsentiert.
Bei Ausführung auf dem Entwicklungs-Webserver wird davon ausgegangen, dass alle User-Objekte gültige Google-Konten repräsentieren, wenn sie im (simulierten) Datenspeicher gespeichert werden.
Das User-Objekt für einen gültigen Nutzer kann einen eindeutigen ID-Wert für den Nutzer bereitstellen, der auch dann gleich bleibt, wenn der Nutzer seine E-Mail-Adresse ändert. Die Methode
user_id()
gibt diese ID, einen
str
-Wert, zurück.
Das User-Objekt weist unabhängig von der Authentifizierungsmethode, die Ihre Anwendung verwendet, immer dasselbe Format auf.
Nutzerwerte mit Datastore verwenden
Die Nutzer-ID ist stabil. Sie können sie in einem Schlüsselnamen oder als eine String-Property verwenden. Wenn Sie Nutzerwerte verwenden, sollten Sie daher die Nutzer-ID (und möglicherweise die zuletzt erfasste E-Mail-Adresse für die Kommunikation mit dem Nutzer per E-Mail) speichern. Das folgende Beispiel zeigt, wie der aktuelle Nutzer mit einer Nutzer-ID verglichen wird:
Es wird dringend empfohlen, keine UserProperty
zu speichern, da diese die E-Mail-Adresse sowie die eindeutige ID des Nutzers enthält. Wenn ein Nutzer seine E-Mail-Adresse ändert und Sie den alten gespeicherten Wert User
mit dem neuen Wert User
vergleichen, stimmen diese nicht überein. Stattdessen sollten Sie den Nutzer-ID-Wert von User
als stabile eindeutige Kennung des Nutzers verwenden.