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.

questionAnswers(1)

yourAnswerToTheQuestion