只是想知道通过调用user.getUserId()
返回的userId是否应被视为机密,还是可以在公共URL中使用?例如,个人资料页面网址看起来像http://example.com/userprofile/11901930903930,其中11901930903930是Google在Appengine上生成的userId。
这是我们用来获取userId的函数:
UserService userService = UserServiceFactory.getUserService();
User user = userService.getCurrentUser();
String id = user.getUserId();
答案 0 :(得分:11)
实际上,我在Google上发现了这个信息,结论是不应该公开使用。
来自Google:
访问帐户信息
当用户登录到某个应用时,该应用可以访问该用户对该应用发出的每个请求的帐户电子邮件地址或OpenID标识符。该应用还可以访问唯一标识用户的用户ID,即使用户更改了其帐户的电子邮件地址也是如此。
该应用还可以确定当前用户是否是该应用的管理员(“开发者”)。即使您未对其他用户进行身份验证,也可以使用此功能为应用程序构建管理功能。 Go,Java和Python API可以轻松地将URL配置为“仅限管理员”。
注意:每个用户对所有App Engine应用程序都具有相同的用户ID。如果您的应用在公共数据中使用用户ID,例如将其包含在URL参数中,则应使用添加了“salt”值的哈希算法来隐藏ID。公开原始ID可以允许某人将用户在一个应用中的活动与另一个应用中的活动相关联,或者通过强制用户登录到另一个应用来获取用户的电子邮件地址。