Une instance de la classe
User
représente un utilisateur. Ces instances sont uniques et comparables. Si deux instances sont égales, elles représentent le même utilisateur.
L'application peut accéder à l'instance "User" de l'utilisateur actuel en appelant la fonction
users.get_current_user()
.
Vous pouvez utiliser la fonction
users.get_current_user()
, quelle que soit l'option d'authentification employée par votre application.
Une instance User peut également être créée à partir d'une adresse e-mail :
user = users.User("Albert.Johnson@example.com")
De même, si vous disposez d'une identité fédérée (federated_identity
), vous pouvez l'utiliser pour créer une instance User :
user = users.User(federated_identity="http://example.com/id/ajohnson")
Si leconstructeur Userest appelé avec une adresse e-mail ne correspondant pas à un compte Google valide, l'objet est créé mais ne correspond pas à un véritable compte Google. Cela se produit même si un utilisateur crée un compte Google avec l'adresse e-mail fournie après le stockage de l'objet. Une valeur User associée à une adresse e-mail ne représentant pas un compte Google au moment de sa création ne correspondra jamais à une valeur User représentant un véritable utilisateur.
Lorsqu'ils sont exécutés sous le serveur Web de développement, tous les objets User sont supposés représenter des comptes Google valides lors de leur stockage dans le datastore (simulé).
L'objet User d'un utilisateur valide peut fournir une valeur d'identifiant unique à l'utilisateur, qui reste identique même si l'adresse e-mail change. La méthode
user_id()
renvoie cet identifiant, à savoir une valeur
str
.
Quelle que soit la méthode d'authentification utilisée par votre application, l'objet User présente toujours le même format.
Utiliser des valeurs utilisateur avec Datastore
L'ID d'utilisateur est stable et vous pouvez l'utiliser dans un nom de clé ou en tant que propriété de chaîne. Par conséquent, lorsque vous employez des valeurs utilisateur, vous devez stocker l'ID d'utilisateur (et peut-être la dernière adresse e-mail connue pour pouvoir communiquer avec lui par courrier électronique). L'exemple ci-dessous montre comment comparer l'utilisateur actuel à un ID d'utilisateur :
Nous vous recommandons vivement de ne pas stocker de propriété UserProperty
, car elle contient l'adresse e-mail et l'ID unique de l'utilisateur. Si un utilisateur change d'adresse e-mail et que vous comparez l'ancienne valeur User
stockée à la nouvelle valeur User
, elles ne correspondront pas. Envisagez plutôt d'utiliser la valeur d'ID utilisateur User
comme identifiant unique stable de l'utilisateur.