Symfony 2“您的会话已超时或您已禁用cookie”

时间:2014-11-01 23:09:14

标签: symfony session cookies login

导致这种情况的三件事之一,我不确定它中的哪三件。所以我会提到所有3,希望它能帮助别人节省时间。

最初我在parameters.yml中更改了数据库用户凭据 由于有问题的用户无法从localhost登录,因此无法正常工作。也就是说,我使用该网站来测试连接,这可能会扰乱cookie。

由于图片丢失,我遇到了一些缓存文件夹权限问题。所以我必须像往常一样清除缓存并调整一些权限。

最后,我更改了security.yml的路径

        form_login:
            login_path:  /login
            check_path:  /login_check
        logout:
            path:   /logout

为:

        form_login:
            login_path:  /account/login
            check_path:  /account/login_check
        logout:
            path:   /account/logout

随着routing.yml的适当更改

结果是我已登录的用户不再通过安全凭证,如果我尝试通过其他用户/浏览器登录,我总是面临: "您的会话已超时或您已禁用Cookie"

花了很多时间跟着红鲱鱼,检查安全性,登录处理,redis等。

以下答案。

2 个答案:

答案 0 :(得分:10)

我最终在这里找到答案: Symfony authentication - can't get past login page in production(pleerock的回答)

但是想要将我的主题行中的错误消息与以下解决方案相关联:

security:
    firewalls:
        main:
            form_login:
                require_previous_session: false

这解决了问题发生之前尚未登录的浏览器的问题。

对于我已经登录的浏览器,我不得不手动删除会话cookie以使其重新运行。

答案 1 :(得分:0)

我认为Adi的答案不是解决方案,只能解决。

我确实意识到

在config.yml中有cookie_domain参数;

session:
    save_path: ~
    cookie_domain: %cookie_domain%

如果使用自定义域(如test.myapp),则应在此处设置相同。当这些都不匹配时,会发生此问题。

它应该显示如下;

cookie_domain:“ test.myapp” 您的实际域:test.myapp

我希望这对您有所帮助。