如何在Symfony中扩展会话cookie生存期?

时间:2017-03-03 14:53:55

标签: php session cookies symfony

在服务器端访问会话数据时,其modified_time已设置,因此将其到期时间延长到将来。

但是,PHPSESSID cookie不会发生这种情况。虽然服务器端的会话数据到期延长,但cookie过期却没有。如果cookie过期,用户将丢失其会话 - 在发送请求时,他将没有会话ID。

有没有办法告诉Symfony\Component\HttpFoundation\Session\Session延长Cookie到期日期?

  • 这可以针对相同的会话ID完成吗?或者我们是否必须重新生成它(对于许多用户X许多请求似乎效率低下)?
  • 我应该自己手动设置(无视OOP原则)

我找到$request->getSession()->getMetadataBag() 并尝试设置stampNew(),但这似乎与PHPSESSID Cookie无关。

1 个答案:

答案 0 :(得分:3)

您可以更改会话密钥下的config.yml文件,例如:

# session configuration
session:
    cookie_lifetime:    3600

来自doc:

  

cookie_lifetime

     

type:integer default:null

     

这决定了会话的生命周期 - 以秒为单位。默认   value - null - 表示session.cookie_lifetime的值   将使用php.ini。将此值设置为0表示cookie为   对浏览器会话的长度有效。

文档here

中的更多信息