【发布时间】:2012-04-30 01:40:09
【问题描述】:
什么是 Play 的最佳方法!应用程序记住用户?我认为唯一可能的解决方案是使用客户端cookie,对吗?但是一旦浏览器关闭,这个会话就被破坏了,对下一个请求无效?你是如何/如何解决(d)这个问题的?
就目前而言,我在会话(每个会话)中提供加密的userid,如下所示:
session("userid", user.id);
然后我使用拦截器来避免在每次需要时传递参数,如下所述:How to avoid passing parameters everywhere in play2?
但是如何记住用户,甚至更好的是,在下一次请求时自动登录用户?
编辑:2016-03-11 请注意,某些浏览器可能会将会话 cookie 存储更长的时间。例如,您可以在 Chrome 中设置以记住下次访问时打开的标签。这意味着 Play Session cookie 将在您下次打开浏览器时恢复。
从 Play 2.4 开始,会话 cookie maxAge(您需要在 application.conf 中设置)重命名为:play.http.session.maxAge
【问题讨论】:
-
您在每次请求时从会话中检索它。请看一下 zentasks 示例,它展示了如何执行所有这些操作。
-
我看过 Zentasks,但是当浏览器关闭时,zentasks 会话不会持续存在。我想记住用户,当他第二天访问时,自动将他登录到应用程序中。或者我错过了什么?
-
这必须是您的浏览器中的设置,因为通常cookie不会被删除。
标签: session-cookies playframework-2.0