Una instancia de la clase
User
representa a un usuario. Las instancias de usuario son únicas y comparables. Si dos instancias son iguales, representan al mismo usuario.
La aplicación puede acceder a la instancia de User del usuario actual llamando a la función
users.get_current_user()
.
Puedes usar la función
users.get_current_user()
independientemente de la opción de autenticación que use tu aplicación.
Una instancia User también se puede crear a partir de una dirección de correo electrónico:
user = users.User("Albert.Johnson@example.com")
Si tienes un federated_identity, puedes usarlo para crear una instancia de User:
user = users.User(federated_identity="http://example.com/id/ajohnson")
Si se llama al constructor de usuario User constructor con una dirección de correo que no corresponde a una cuenta de Google válida, se creará el objeto, pero no corresponderá a una cuenta de Google real. Esto ocurrirá aunque alguien cree una cuenta de Google con la dirección de correo indicada después de que se almacene el objeto. Un valor de User con una dirección de correo que no represente una cuenta de Google en el momento de su creación nunca coincidirá con un valor de User que represente a un usuario real.
Cuando se ejecuta en el servidor web de desarrollo, se supone que todos los objetos User representan cuentas de Google válidas cuando se almacenan en el almacén de datos (simulado).
El objeto User de un usuario válido puede proporcionar un valor de ID único para el usuario que no cambia aunque este cambie su dirección de correo electrónico. El método
user_id()
devuelve este ID, un valor de
str
.
El objeto User tiene el mismo formato independientemente del método de autenticación que utilice tu aplicación.
Usar valores de usuario con Datastore
El ID de usuario es estable, por lo que puede usarlo en un nombre de clave o como propiedad de cadena. Por lo tanto, cuando utilices valores de usuario, te recomendamos que almacenes el ID de usuario (y quizás la última dirección de correo para comunicarte con el usuario por correo). En el ejemplo de abajo se muestra cómo comparar el usuario actual con un ID de usuario:
Te recomendamos que no almacenes un UserProperty, ya que incluye la dirección de correo junto con el ID único del usuario. Si un usuario cambia su dirección de correo y comparas su antiguo valor de User almacenado con el nuevo, no coincidirán.User En su lugar, puede usar el User valor del ID de usuario como identificador único estable del usuario.