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

如何在GAE java中为自定义用户数据库创建cookie?,java,google-app-engine,web-applications,cookies,Java,Google App Engine,Web Applications,Cookies,我知道,使用谷歌应用程序引擎提供的用户服务,cookies会自动在后台创建,我永远不必处理它们。然而,对于我的特定项目,我需要创建一个自定义用户数据库——如何知道用户已登录或注销?我是否需要为用户浏览器等创建cookie 干杯, 罗伯:不,你没有。您所需要做的就是通过添加 <sessions-enabled>true</sessions-enabled> true 到您的appengine web.xml文件 本质上,GAE是一个servlet容器。因此,您可以利用任

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

干杯,
罗伯:不,你没有。您所需要做的就是通过添加

<sessions-enabled>true</sessions-enabled>
true
到您的
appengine web.xml
文件

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

那么你要做的是:

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