Избегайте использования db.UserProperty () при хранении пользовательских объектов

Изменить 08/01/2014

На момент редактирования я понял, что свойство объектаdb.UserProperty() удаляется из хранилища данных ndb как минимум. Хорошо!

Итак ... Существует класс модели db.UserProperty (), который хранит адрес электронной почты в порядке Юникода. Почему и как она отличается от строки Unicode, которая просто хранит

users.get_current_user().email() 

в db.StringProperty () скажем?

Безопасно ли использовать его как:

class LocalUser(db.Model):

    user_account = db.UserProperty()

my_local_user = LocalUser.all().filter("user_account=", users.get_current_user().get())

РЕДАКТИРОВАТЬ

Причина, по которой я задал этот вопрос, заключается в том, что многие примеры и некоторые книги для Google App Engine используют db.UserProperty () для Моделей, чтобы сохранить экземпляр пользователя, а затем, когда пользователь возвращается, они могут получить экземпляр db.Model для этот конкретный пользователь.

На мой взгляд, это открывает уязвимости в вашем приложении.Проверка пользователей.

Ответ от @RocketDonkey объясняет корни моего запроса и дает хорошее объяснение, почему бы не хранить экземпляры пользовательских объектов db.UserProperty () для хранения аутентификации пользователей.

Правильный способ хранитьИдентификатор пользователя() Свойство экземпляра User, поскольку оно уникально и фиксируется для каждого пользователя.

Постскриптум Извините за мой английский. Если кто-то может редактировать, это будет оценено. "

Ответы на вопрос(1)

Ваш ответ на вопрос