3
我正在创建电子商务应用,并且正在使用Handler构建自定义重定向。Symfony2/FosUserBundle - 在登录前获取上一条路由
比方说,我的用户在他的购物车上,他没有登录。他验证他的购物车继续购买过程。在这种情况下,我的应用将用户重定向到登录页面。但是当他最终登录时,我想将他重定向到之前的路线(即购物车页面)。 (对不起,我的英文不好,我希望你能理解我说的)
这是我AuthentificationSuccessHandler:
class AuthentificationSuccessHandler implements AuthenticationSuccessHandlerInterface
{
protected $router;
protected $security;
/**
* AfterLoginRedirection constructor.
* @param Router $router
* @param AuthorizationChecker $security
*/
public function __construct(Router $router, AuthorizationChecker $security)
{
$this->router = $router;
$this->security = $security;
}
public function onAuthenticationSuccess(Request $request, TokenInterface $token)
{
$session = $request->getSession();
if ($this->security->isGranted('ROLE_SUPER_ADMIN')) {
$response = new RedirectResponse($this->router->generate('_homepage_admin'));
} else {
$referer_url = $request->headers->get('referer');
$response = new RedirectResponse($referer_url);
}
$session->getFlashBag()->add('success', 'Connexion réussi !');
return $response;
}
正如你所看到的,我用headers->get('referer');
喜欢我的文档中看到,但这不起作用。用户重定向到登录页面(但认证工作正常)
所以我卡住了现在..
告诉我,如果你需要更多的代码,以帮助我为我的问题。
任何线索或建议?
谢谢。
这篇文章也许可以帮[http://stackoverflow.com/questions/32649157/reliably-redirect-to -last-accessible-page-in-symfony2] –
谢谢。那么我想我会使用会话来存储路线。 – Letsrocks