造成这种情况的原因有三种,我不确定是哪一种。所以我将提到这三个,希望它能帮助其他人节省时间。
最初,我在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
我希望这对你有帮助。