我已覆盖AuthenticationSuccessHandler
,但我希望将引用重定向行为保持成功。
我看到了默认处理程序uses $request->headers->get('Referer')
,我尝试在我的自定义处理程序上执行相同操作:
if (($targetUrl = $request->headers->get('Referer'))
&& $targetUrl !== $this->options['login_path']) {
die($targetUrl);
返回登录路径:
http://my_host/login
而不是原始请求。我认为这是因为防火墙之前已将用户重定向到登录页面。
默认处理程序重定向我很好,所以我想知道为什么我没有。
如何从我的自定义AuthenticationSuccessHandler
获取原始请求答案 0 :(得分:2)
你应该看here。 determineTargetUrl
就是你所要求的。
添加:它保存会话中的返回路径,然后恢复它(第98行)。如果用户会话中没有返回路径,则处理程序将使用Referer。