Un'istanza della classe
User
rappresenta un utente. Le istanze utente sono
uniche e paragonabili. Se due istanze sono uguali, rappresentano lo stesso
utente.
L'applicazione può accedere all'istanza Utente per l'utente corrente chiamando la funzione
users.get_current_user()
.
Puoi utilizzare la funzione
users.get_current_user()
indipendentemente dall'opzione di autenticazione utilizzata dalla tua app.
Un'istanza User può essere creata anche da un indirizzo email:
user = users.User("Albert.Johnson@example.com")
In alternativa, se hai un federated_identity
, puoi utilizzarlo per creare un'istanza User:
user = users.User(federated_identity="http://example.com/id/ajohnson")
Se il costruttore User viene chiamato con un indirizzo email che non corrisponde a un Account Google valido, l'oggetto verrà creato, ma non corresponderà a un Account Google reale. Ciò avverrà anche se qualcuno crea un Account Google con l'indirizzo email specificato dopo che l'oggetto è stato archiviato. Un valore User con un indirizzo email che non rappresenta un Account Google al momento della creazione non corrisponderà mai a un valore User che rappresenta un utente reale.
Quando viene eseguito sul server web di sviluppo, si presume che tutti gli oggetti User rappresentino Account Google validi quando vengono archiviati nel datastore (simulato).
L'oggetto User per un utente valido può fornire un valore ID univoco per l'utente che rimane invariato anche se l'utente cambia il proprio indirizzo email. Il metodo
user_id()
restituisce questo ID, un valore
str
.
L'oggetto User ha la stessa forma indipendentemente dal metodo di autenticazione utilizzato dalla tua app.
Utilizzo dei valori utente con Datastore
L'ID utente è stabile; puoi utilizzarlo in un nome chiave o come proprietà di stringa. Pertanto, quando utilizzi i valori utente, devi memorizzare l'ID utente (e forse l'indirizzo email visualizzato per ultimo per comunicare con l'utente via posta). L'esempio riportato di seguito mostra come confrontare l'utente corrente con un ID utente:
Ti consigliamo vivamente di non memorizzare un UserProperty
, perché include l'indirizzo email insieme all'ID univoco dell'utente. Se un utente cambia il suo indirizzo email e confronti il vecchio User
memorizzato con il nuovo valore User
, i valori non corrisponderanno. Ti consigliamo invece di utilizzare il User
valore dell'ID utente come identificativo univoco stabile dell'utente.