Symfony 2 AJAX会话到期

时间:2016-10-04 14:47:15

标签: php jquery ajax symfony session

我有一个AJAX工作者,他们每秒都被称为API网址。 250-300秒后,如果用户已注销,我将无法获得有效的响应或配置文件令牌。我已将cookie_lifetime配置为 0 ,但没有任何区别。这也是我的security.yml:

firewalls:
    main:
        pattern: ^/
        anonymous: true
        form_login:
            login_path: /home
        logout:
            path: logout
            handler: app.custom_logout
            target: /home

奇怪的是,会话到期时似乎完全随机。我还有超过1000个AJAX呼叫,另一方面只有300个呼叫。

我希望你们中的任何一个人都可以帮助我。

PS:AJAX调用不仅是JSON响应,还有完整生成的twig模板(包括分析器)。

1 个答案:

答案 0 :(得分:0)

我自己找到了问题的答案。

您需要配置gc_divisorgc_probabilitygc_maxlifetime。例如:

session:
    cookie_lifetime: 0
    gc_divisor: 10000
    gc_probability: 1
    gc_maxlifetime: 604800

config.yml中进行此配置后,您的会话失效的可能性(因为您已将cookie_lifetime设置为特定时间)等于零。

另请参阅会话的Symfony文档:http://symfony.com/doc/current/reference/configuration/framework.html#session