Eine Instanz der Klasse User repräsentiert einen Nutzer. User-Instanzen sind eindeutig 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. Das ist selbst dann der Fall, wenn jemand nach dem Speichern des Objekts ein Google-Konto mit der entsprechenden E-Mail-Adresse erstellt. Ein Nutzerwert mit einer E-Mail-Adresse, die zur Zeit der Erstellung kein Google-Konto repräsentiert, wird niemals einem Nutzerwert entsprechen, der einen tatsächlichen 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 selbst 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 von der App verwendeten Authentifizierungsmethode immer dasselbe Format auf.
Nutzerwerte mit Datenspeicher 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.