众所周知,在Google Cloud Datastore类型中强制执行唯一属性的唯一可靠方法是通过密钥属性。因此,假设我们正在使用Google Users API构建Google AppEngine(GAE)应用程序来对用户进行身份验证,我们希望创建一种名为Profile的类型。每个用户只能有一个配置文件。将User对象id存储为关键属性以强制实现这种唯一性是正确的,对吧?事实上,Google App Engine User API documentation甚至说过:
将用户值与数据存储区一起使用
用户ID稳定;您可以在键名或字符串属性中使用它。因此,在使用用户值时,您希望存储用户ID
但是假设我们的应用程序需要在浏览器中显示这些用户配置文件的超链接。用user.user_id()
字符串形成网址是否合适?用户ID不应被视为敏感信息吗?所有Google应用程序中一个人的Google帐户user_id都是相同的。泄漏到浏览器似乎不对,但我在GAE文档中找不到任何禁令(除非我遗漏了某些东西)。
现在如果如果用户ID不应该泄露给客户端,它是否应该被哈希?或者是否有其他方法来设计一种Google用户ID应该是唯一的?
注意:我可以使用用户ID作为密钥,并将其与经过身份验证的端点中的当前用户进行比较。问题与它是否可以暴露给浏览器(感觉不对)有关,如果不是,通常如何处理资源(例如博客文章)的所有者(应用程序用户)需要的情况在应用程序中可见。
答案 0 :(得分:2)
Google Security似乎可以通过浏览器公开。
Google+在显示用户个人资料时以及在其帖子的网址中使用该网址。