Symfony2:记得我在重新打开浏览器时删除了cookie

 僾媙 发布于 2023-02-09 15:10

尽管有关堆栈溢出的所有其他问题,但我无法使用所有提供的信息解决问题.
这就是为什么我决定创建一个新的.

所以我在登录表单中实现了记住我的功能,其复选框看起来像这样:


登录时一切都很好,cookie设置正确

cookie设置正确

通过整个浏览器会话,cookie仍然存在.
但是当我关闭浏览器并重新打开它时,cookie仍然在那里(还没有导航到我的localhost!).

当我在localhost上导航到我的网站时,cookie会根据响应标头被删除

在此输入图像描述

我不知道为什么cookie会在导航到网站时被删除.

问题可能在于remember_me功能的securtiy.yml设置

firewalls:
    somefirewall:
        form_login:
            remember_me: true
remember_me:
        key: %secret%
        lifetime: 31536000
        remember_me_parameter: 'form[saveCredentials]'
        path: /
        domain: ~

有关如何解决这个问题的任何想法?提前致谢

1 个回答
  • 我最近遇到了这个问题,这是我找到的解决方案:

    删除cookie的原因是因为cookie包含的用户信息与Symfony知道的任何内容都不匹配.它无法根据cookie记录用户,因此只删除它.我的问题是我的UserProvider类中的字符串不正确.具体方法是supportsClass.它'AppBundle\Security\User'应该实际返回''AppBundle\Entity\User'时返回.这导致Symfony无法根据cookie中的信息找到任何用户,然后它只会删除cookie并继续前进.

    如果你进入这个文件,你可以做更多的故障排除:vendor/symfony/symfony/src/Symfony/Component/Security/Http/RememberMe/TokenBasedRememberMeServices.php.四处游玩processAutoLoginCookie,看看你能不能搞清楚!

    祝好运!

    2023-02-09 15:12 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有