Evite usar db.UserProperty () ao armazenar objetos do usuário
Editar 08/01/2014
A partir desta edição, percebi que a propriedade do assuntodb.UserProperty()
é removido do armazenamento de dados ndb, pelo menos. Boa!
Então ... Existe a classe de modelo db.UserProperty () que armazena o endereço de email na ordem Unicode. Por que e como ela difere de uma string unicode que apenas armazena a
users.get_current_user().email()
em um db.StringProperty () vamos dizer?
É seguro usá-lo como:
class LocalUser(db.Model):
user_account = db.UserProperty()
my_local_user = LocalUser.all().filter("user_account=", users.get_current_user().get())
EDITAR
A razão pela qual fiz essa pergunta é porque muitos exemplos e alguns livros do Google App Engine usam db.UserProperty () para Modelos para salvar a instância do usuário e, mais tarde, quando o usuário retorna, eles podem obter a instância db.Model para esse usuário específico.
Na minha opinião, isso abre vulnerabilidades na validação de usuários do seu aplicativo.
A resposta do @RocketDonkey explica as raízes da minha consulta e fornece uma boa explicação sobre por que não armazenar as instâncias do objeto User para armazenar a autenticação do usuário em db.UserProperty ().
A maneira correta é armazenar oID do usuário() propriedade da instância do Usuário, porque é única e fixa para todos os usuários.
P.S. Desculpe pelo meu Inglês. Se alguém puder editar, será apreciado.