Symfony内核创建302-redirect而不是使用正确的路由



我正在构建一个Symfony 5.3应用程序,并将路由/logout映射到控制器方法logout()

使用router:match /logout运行symfony控制台会得到"Defaults":AppControllerIndexController::logout()"的值,正如预期的那样。

但是,当我在浏览器中访问启用了xdebug的页面,并在代码中的多个相关点上放置了断点时,我看到即使路由匹配正确(日志同意),控制器中的注销方法也从未运行过。一个简单的$logger->debug("This is never run")确认这不仅仅是一个xdebug问题。

内核决定返回一个302,重定向到"/">

我检查了我的浏览器没有缓存旧的重定向,并在控制台中运行了几次cache:clear

什么可能导致这种行为?什么好主意吗?

Symfony实际上从未调用您的控制器进行注销,它执行自己的逻辑并将用户重定向到某些页面。如果您需要自定义注销行为,请按照文档链接到LogoutEvent事件:https://symfony.com/doc/current/security.html#customizing-logout

最新更新