Symfony 2 "Your session has timed out or you have disabled cookies"



造成这种情况的原因有三种,我不确定是哪一种。所以我将提到这三个,希望它能帮助其他人节省时间。

最初,我在parameters.yml中更改了数据库用户凭据这不起作用,因为有问题的用户无法从localhost登录。也就是说,我使用该网站来测试连接,这可能会破坏cookie。

由于缺少图像,我遇到了一些缓存文件夹权限问题。所以我不得不像你每次一样清除缓存并调整一些权限。

最后,我改变了安全的道路。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

随着路线的适当变化。yml

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

花了很多小时跟踪可疑事件、检查安全性、登录处理、redis等。

回答如下。

我最终在这里找到了答案:Symfony身份验证-can';在生产中无法通过登录页面(pleerock的答案)

但我想把我主题行中的错误消息与下面的解决方案联系起来:

security:
    firewalls:
        main:
            form_login:
                require_previous_session: false

这修复了出现问题之前未登录的浏览器的问题。

对于我已经登录的浏览器,我必须手动删除会话cookie才能重新工作。

我认为Adi的答案不是解决方案,只是变通一下。

我确实意识到

在config.yml中有cookie_domain参数;

session:
    save_path: ~
    cookie_domain: %cookie_domain%

如果你使用像test.myapp这样的自定义域,你应该在这里设置相同的域。当两者不匹配时,就会出现此问题。

它应该如下所示;

cookie_domain:'test.myapp'您的实际域名:test.myapp

我希望这对你有帮助。

相关内容

最新更新