Un'istanza della classe User rappresenta un utente. Le istanze utente sono univoche e paragonabili. Se due istanze sono uguali, rappresentano lo stesso utente.
L'applicazione può accedere all'istanza User 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 dall'app.
Un'istanza utente può essere creata anche da un indirizzo email:
user = users.User("Albert.Johnson@example.com")
In alternativa, se disponi di un federated_identity
, puoi utilizzarlo per creare un'istanza User:
user = users.User(federated_identity="http://example.com/id/ajohnson")
Se il costruttore dell'utente viene chiamato con un indirizzo email che non corrisponde a un Account Google valido, l'oggetto verrà creato, ma non corrisponderà a un Account Google reale. anche se qualcuno crea un Account Google con l'indirizzo email specificato dopo che l'oggetto è stato archiviato. Un valore Utente con un indirizzo email che non rappresenta un Account Google al momento della creazione non corrisponderà mai a un valore Utente che rappresenta un utente reale.
Quando vengono eseguiti nel server web di sviluppo, si presume che tutti gli oggetti User rappresentino Account Google validi quando sono 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, ovvero un
valore str
.
L'oggetto User ha lo stesso formato, indipendentemente dal metodo di autenticazione utilizzato dall'app.
Utilizzo dei valori utente con Datastore
Lo User-ID è stabile; puoi utilizzarlo nel nome di una chiave o come proprietà stringa. Di conseguenza, quando utilizzi i valori utente, vuoi archiviare lo User-ID (e forse l'indirizzo email dell'ultimo accesso per comunicare con l'utente per posta). L'esempio seguente mostra come confrontare l'utente corrente con un ID utente:
Ti consigliamo vivamente di non archiviare un UserProperty
, perché include l'indirizzo email
insieme all'ID univoco dell'utente. Se un utente cambia il proprio indirizzo email e confronti il precedente valore User
archiviato con il nuovo valore di User
, non corrisponderanno. Considera invece di utilizzare il
valore ID utente
User
come identificatore univoco stabile dell'utente.