Symfony2 - 在重新登录后将用户重定向回去,如果由于会话过期而注销


Symfony2 - redirect user back after re-login, if logged out because session expired?

在Symfony 2.8中,如果用户的会话过期,他将被注销并在提出新请求后重定向到登录页面。
用户再次登录后,如何将用户重定向回他在被重定向之前想要打开的页面?或者至少到他打开的最后一页(页面,哪个会话过期)?

您可以让登录操作检查或存在引用,并更新安全目标路径。在执行此操作之前,请确保推荐人是安全的;-)

$yourReferer = $request->headers->get('referer');
$this->container->get('session')->set('_security.main.target_path', $yourReferer);
登录

机制将在成功登录尝试后使用该target_path

在这种情况下,

使用标头获取引用(即$request->headers->get('referer'))将不起作用,因为它将始终返回登录链接。

感谢@Carrie肯德尔 - 他的回答