Bonjour,
J'essaye de faire une redirection dans un Listener. En gros j'ai deux pages de login un pour mobile et un pour PC. Je voudrais donc qu'en cas de succès ou erreur l'or de l'entrée des identifiants, l'user soit redirigé au bonne endroit.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | <?php // AuthenticationListener.php namespace Acme\UserBundle\Listener; use Symfony\Component\Security\Core\Event\AuthenticationFailureEvent; use Symfony\Component\Security\Http\Event\InteractiveLoginEvent; use Symfony\Component\Routing\Router; use Symfony\Component\HttpFoundation\RedirectResponse; class AuthenticationListener { protected $router; public function __construct(Router $router) { $this->router = $router; } public function onAuthenticationFailure(AuthenticationFailureEvent $event) { if(preg_match("/m\/login/", $_SERVER['HTTP_REFERER'])){ // var_dump('Hello'); die(); return new RedirectResponse($this->router->generate('mobile_login')); } } public function onAuthenticationSuccess(InteractiveLoginEvent $event) { if(preg_match("/m\/login/", $_SERVER['HTTP_REFERER'])){ return new RedirectResponse($this->router->generate('mobile_home')); } } } |
Le code marche, donc si je décommente la ligne 23 j'ai bien un Hello quand il faut. En sommes tout marche sauf la redirection, il s'en fout. Quoi qu'il arrive il redirige tout seul sur /login. Je n'ai pas d'erreur, rien !
Donc comment faire une redirection dans un listerner, car j'ai tout essayé.
Merci
+0
-0