Благодаря Indra Gunawan это решение работает. Моя цель состояла в том, чтобы перенаправить на страницу входа с сообщением типа «Вы успешно вышли из системы».
В этом случае LogoutSuccessHandler должен быть адаптирован для маршрутизации на страницу входа:
namespace App\Logout;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Security\Http\Logout\LogoutSuccessHandlerInterface;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
use Symfony\Component\HttpFoundation\RedirectResponse;
class MyLogoutSuccessHandler extends AbstractController implements LogoutSuccessHandlerInterface
{
private $urlGenerator;
public function __construct(UrlGeneratorInterface $urlGenerator)
{
$this->urlGenerator = $urlGenerator;
}
public function onLogoutSuccess(Request $request)
{
return new RedirectResponse($this->urlGenerator->generate('login', ['logout' => 'success']));
}
}
Маршрутный логин должен быть определен в маршрутах
Последнее, вы можете поймать параметр выхода из системы в шаблоне ветки, например:
{%- if app.request('logout') -%}
<div class="alert alert-success">{% trans %}Logout successful{% endtrans %}</div>
{%- endif -%}