我想在Symfony将我重定向到登录页面之前存储POST参数(如果我没有登录)。
我尝试在Request上设置一个监听器,但这不起作用。 我使用的是FOSUserBundle,但没有事件可以监听此重定向。
有人可以帮我这个吗?
答案 0 :(得分:1)
找到它。
我将Request Listener的优先级更改为9。
(Symfony防火墙设置为8)。
非常有用的命令:php app/console debug:event-dispatcher
希望这可以帮助某人。
答案 1 :(得分:0)
在security.yml文件中,您可以声明此
form_login:
// All others options that you need
failure_handler: redirect_after_login_failed
在services.yml
中声明您的服务redirect_after_login_failed:
class: AppBundle\Redirection\AfterLoginFailedRedirection
arguments: ["@router"]
在AppBundle / Redirection中
namespace AppBundle\Redirection;
class AfterLoginRedirection implements AuthenticationFailureHandlerInterface {
/**
* @var $router \Symfony\Component\Routing\RouterInterface
*/
private $router;
public function __construct(RouterInterface $router) {
$this->router = $router;
}
public function onAuthenticationFailure(Request $request, AuthenticationException $exception)
{
//Do what you want here
//Redirect where you want
$redirection = new RedirectResponse($this->router->generate(''));
return $redirection;
}
}
如果用户被您的安全系统拒绝,并且在重定向到您的登录页面之前,您可以执行某些操作。