如何在GAE java中为自定义用户数据库创建cookie?

时间:2013-09-24 08:21:18

标签: java google-app-engine web-applications cookies

据我所知,使用谷歌应用引擎提供的用户服务,然后在后台自动创建cookie,我永远不必处理它们。但是,对于我的特定项目,我需要创建一个自定义用户数据库 - 如何知道用户是否已登录或注销?我是否必须为用户浏览器等创建cookie?

干杯, 罗布

1 个答案:

答案 0 :(得分:3)

不,你没有。您需要做的就是通过添加

来启用会话
<sessions-enabled>true</sessions-enabled>

到您的appengine-web.xml文件。 See documentation.

基本上,GAE是一个servlet容器。因此,您可以使用任何标准Java servlet容器所具有的所有机制。会话是这些机制之一。

那么你会做什么,是这样的:

  1. 调用request.getSession(true)获取当前会话,如果尚未完成,则调用新会话。
  2. 执行session.getAttribute("userId")之类的操作。请注意,“userId”只是一个示例,它本质上是一个字符串对象映射,您可以在其中存储几乎任何内容。
  3. 如果上述调用返回null,则尚未设置,因此用户尚未登录。让他登录:
    • 获取用户名和密码,在数据存储中解析,执行session.setAttribute("userId", user.getId())
    • 由于现在设置了会话属性“userId”,因此用户已登录。
  4. 如果上述调用返回了一个id,您可以在数据存储中解析它以获取当前登录的用户。
  5. 试一试!这真的很轻松,一切都为你完成,不需要自己处理cookie,会话令牌或任何东西。