编辑 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 实例的user_id()属性,因为它对于每个用户都是唯一且固定的。
PS对不起我的英语。如果有人可以编辑,将不胜感激。