如何在POST请求期间刷新会话?

Ste*_*nte 6 php session symfony

我正在Symfony2中构建一个用户登录的Ajax应用程序,然后从那时起,所有内容都由POST请求处理.在将会话生存期定义为5分钟后config.yml,即使他们正在发出POST请求,我也会遇到5分钟后用户会话失效的问题.每次发出请求时,我都希望在会话无效之前重置倒计时,但我不确定如何有效地执行此操作.

我目前正在考虑的方法是为kernel.request事件编写一个监听器,检查请求方法是否为POST,并操纵会话类.我还没有这样做,但它似乎不是一个干净的解决方案,因为每次发出请求时,监听器都需要触发.

这是我的会话配置:

session:  
    default_locale: %locale%  
    auto_start:     true  
    lifetime:       300  
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?解决方案是PHP而不是Symfony吗?

hak*_*kre 9

会话的生命周期是它的最大年龄.这是通过已经创建的cookie来控制的,并且不再从服务器端刷新(因为会话已经建立).您可以手动更新此cookie,我认为这将使用symfony2.

最简单的方法是重新生成会话ID而不会破坏会话:

$this->get('session')->migrate();
Run Code Online (Sandbox Code Playgroud)

这应该触发会话cookie的更新.

可能相关的问题: