For login success there is a parameter use_referer: true
. For login failure there is only failure_path
, which isn't what I'm looking for.
Second thing: How to do that and pass error message?
Third thing: How to go back to referrer after logout?
I solved it.
There is solution: How to disable redirection after login_check in Symfony 2
and here is code which solves my problem:
<?php namespace Acme\MainBundle\Handler; use Symfony\Component\Security\Http\Logout\LogoutSuccessHandlerInterface; use Symfony\Component\Security\Http\Authentication\AuthenticationFailureHandlerInterface; use Symfony\Component\Security\Core\Exception\AuthenticationException; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\RedirectResponse; class AuthenticationHandler implements AuthenticationFailureHandlerInterface, LogoutSuccessHandlerInterface { public function onAuthenticationFailure(Request $request, AuthenticationException $exception) { $referer = $request->headers->get('referer'); $request->getSession()->setFlash('error', $exception->getMessage()); return new RedirectResponse($referer); } public function onLogoutSuccess(Request $request) { $referer = $request->headers->get('referer'); return new RedirectResponse($referer); } }
to handle events add to security.yml for example:
form_login: check_path: /access/login_check login_path: / use_referer: true failure_handler: authentication_handler logout: path: /access/logout target: / success_handler: authentication_handler
and to config.yml:
services: authentication_handler: class: Acme\MainBundle\Handler\AuthenticationHandler
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With