2

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

干杯,罗伯

4

1 回答 1

3

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

<sessions-enabled>true</sessions-enabled>

到你的appengine-web.xml文件。请参阅文档。.

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

所以你会做的是:

  1. 调用request.getSession(true)以获取当前会话,或者如果尚未完成则创建一个新会话。
  2. 做类似的事情session.getAttribute("userId")。请注意,“userId”只是一个示例,它本质上是一个字符串对象映射,您可以在其中存储几乎任何东西。
  3. 如果上面的调用返回null,说明还没有设置,所以用户还没有登录。让他登录:
    • 获取用户名和密码,在数据存储中解析,执行session.setAttribute("userId", user.getId())
    • 由于现在设置了会话属性“userId”,因此用户已登录。
  4. 如果上述调用返回一个 id,您可以在数据存储中解析它以获取当前登录的用户。

试试看!这真的是轻而易举,一切都为您完成,无需自己处理 cookie、会话令牌或任何东西。

于 2013-09-24T11:53:34.820 回答