即使会话已关闭,也要存储Cookie

adi*_*dis 6 session-cookies playframework-2.0

什么是Play的最佳方法!应用程序记住用户?我认为唯一可行的解​​决方案是使用客户端cookie,对吧?但是一旦浏览器关闭,此会话就会被销毁,对下一个请求无效?你怎么解决(d)这个?

至于现在,我userid在会话(每个会话)中加密,如下所示:

session("userid", user.id);
Run Code Online (Sandbox Code Playgroud)

然后我使用拦截器来避免每当我需要它时传递参数,如下所述:如何避免在play2中传递参数?

但是,如何记住用户,甚至是在下次请求时自动登录用户

编辑:2016-03-11 请注意,某些浏览器可能会将会话cookie存储更长时间.例如,您可以在Chrome中设置以记住下次访问时打开的标签页.这意味着下次打开浏览器时将恢复Play Session cookie.

从Play 2.4开始,会话cookie maxAge(你需要在其中设置application.conf)被重命名为:play.http.session.maxAge

小智 5

要在用户关闭浏览器时使会话没有超时,您可以使用session.maxAgeapplication.conf中的参数.

例如:

# Set session maximum age in seconds (4w)
session.maxAge=2419200 
Run Code Online (Sandbox Code Playgroud)


Per*_*ega 0

如果您不强制newSession或用户不删除 cookie,用户仍应登录。

您的浏览器可能被设置为在关闭时删除 cookie,或者您正遭受外部副作用的影响。但我可以确认关闭浏览器后 cookie 仍然存在于我的开发环境中(Chrome 和 Firefox)。