symfony - Symfony 内核创建 302 重定向而不是使用正确的路由
问题描述
我正在构建一个 Symfony 5.3 应用程序并将路由映射/logout
到控制器方法logout()
。
运行 symfony 控制台,router:match /logout
产生 "Defaults": 的值App\Controller\IndexController::logout()
,正如预期的那样。
但是,当我在浏览器中访问启用了 xdebug 并在代码中的多个相关点放置断点的页面时,我看到即使路由正确匹配(日志同意),控制器中的注销方法也永远不会运行。一个简单$logger->debug("This is never run")
的确认它不仅仅是一个xdebug问题。
相反,内核决定返回一个重定向到“/”的 302,甚至不触及该方法。
我检查了我的浏览器没有缓存旧的重定向并且已经cache:clear
在控制台中运行了几次。
什么可能导致这种行为?有任何想法吗?
解决方案
Symfony 从未真正调用您的控制器进行注销,它执行自己的逻辑并将用户重定向到某个页面。如果您需要自定义注销行为,请LogoutEvent
按照文档挂钩事件:https ://symfony.com/doc/current/security.html#customizing-logout
推荐阅读
- c++ - 使用带有周期性边界条件的 Verlet 算法进行 MD 模拟的失控能量
- powershell - 如何合并两个只有唯一项目的数组列表 Powershell
- ios - 从协议扩展中调用类属性
- javascript - Firebase:关于批量写入的困惑
- python - 如何使用熊猫使用 zstandard 压缩镶木地板文件
- powershell - 需要帮助从文本文件中读取并输出到 csv
- android - java.lang.NullPointerException: On Button Click Listener
- c# - 使用组合框 c# 获取文件位置
- reporting-services - SSRS 如何设置默认参数不是全选,而是使用 where 子句作为默认参数?
- javascript - 如何将多个元素作为一个对象