9

只是想知道调用返回的 userId 是否user.getUserId()应该被视为秘密,还是可以在公共 URL 中使用?例如,个人资料页面 URL 类似于http://example.com/userprofile/11901930903930,其中 11901930903930 是 Google 在 Appengine 上生成的用户 ID。

这是我们用来获取 userId 的函数:

UserService userService = UserServiceFactory.getUserService();
User user = userService.getCurrentUser();

String id = user.getUserId();
4

1 回答 1

11

实际上,我在谷歌上找到了这个信息,结论是它们应该被公开使用。

来自谷歌:

访问帐户信息

当用户登录到应用程序时,应用程序可以针对用户向应用程序发出的每个请求访问帐户的电子邮件地址或 OpenID 标识符。该应用程序还可以访问唯一标识用户的用户 ID,即使用户更改了其帐户的电子邮件地址。

应用程序还可以确定当前用户是否是应用程序的管理员(“开发人员”)。即使您没有对其他用户进行身份验证,您也可以使用此功能为应用程序构建管理功能。Go、Java 和 Python API 可以轻松地将 URL 配置为“仅限管理员”。

注意:对于所有 App Engine 应用程序,每个用户都有相同的用户 ID。如果您的应用在公共数据中使用用户 ID,例如通过将其包含在 URL 参数中,您应该使用带有“盐”值的哈希算法来隐藏 ID。暴露原始 ID 可能允许某人将用户在一个应用程序中的活动与另一个应用程序中的活动相关联,或者通过强制用户登录另一个应用程序来获取用户的电子邮件地址。

链接到页面

于 2012-05-15T16:05:27.917 回答