Playframework 2.0 如何保持SecureSocial用户登录?

Playframework 2.0 如何保持SecureSocial用户登录?,playframework-2.0,securesocial,Playframework 2.0,Securesocial,我有一个Play 2.0.4 web应用程序,它使用SecureSocial允许用户通过twitter、facebook和gmail等第三方提供商登录。在这一点上,我没有使用我自己的用户名密码提供者;也许我以后再加上 我需要我的用户保持登录很长时间,也许一周。在我的例子中,用户会话只是用于各种方便的功能,如定制,因此与长寿命会话相关的风险肯定不如不必每次登录的方便性重要 当前会话似乎存储在一个短暂的cookie中,当用户终止浏览器时,cookie就会消失。配置文件中有一个sessionTimeO

我有一个Play 2.0.4 web应用程序,它使用SecureSocial允许用户通过twitter、facebook和gmail等第三方提供商登录。在这一点上,我没有使用我自己的用户名密码提供者;也许我以后再加上

我需要我的用户保持登录很长时间,也许一周。在我的例子中,用户会话只是用于各种方便的功能,如定制,因此与长寿命会话相关的风险肯定不如不必每次登录的方便性重要

当前会话似乎存储在一个短暂的cookie中,当用户终止浏览器时,cookie就会消失。配置文件中有一个sessionTimeOut参数,但它的作用似乎是在长时间处于打开状态的浏览器中终止会话。至少,当我关闭并重新打开浏览器时,会话会立即中断,即使此超时设置为较大的数字


建议用什么方法让用户长时间登录

来自master的最新快照(用于Play 2.1)有一个新属性,如果需要,可以使验证器cookie持久化。在配置文件中,您可以添加:

securesocial.cookie.makeTransient=false
securesocial.cookie.absoluteTimeoutInMinutes=1440
securesocial.cookie.idleTimeoutInMinutes=1440

这将使cookie持久并使会话持续24小时。

对于Play 2.2,您需要将cookie部分添加到securesocial.conf文件中,如:

cookie {
    name=id
    path=/
    httpOnly=true
    idleTimeoutInMinutes=1440
    absoluteTimeoutInMinutes=1440
}

此处定义并使用了配置:

您可以将鼠标悬停在变量上,查看如何使用配置

两个配置:absoluteTimeout和idleTimeout用于不同的目的,它控制cookie何时被视为有效


因此,我建议您对AbsoluteTimeOutingMinutes使用一个比另一个大得多的值

看起来对于我的基本需求,我可以完全摆脱securesocial,使用scribe,然后手动植入会话cookie。代码数量大致相同,但对行为的控制更多。您能提供一个解决方案吗?谢谢