我的自定义成功处理程序有以下方法:
function onAuthenticationSuccess(Request $request, TokenInterface $token)
{
// Do nothing for now
}
在我的安全。yml form_login
部分包含:
...
default_target_path: bundle_app_homepage
always_use_default_target_path: true
success_handler: security.authentication.success_handler
如果我删除success_handler
参数,它会自动重定向到bundle_app_homepage
。
验证成功处理程序未返回响应。
即使我将return null;
添加到处理程序中,我也会得到相同的错误。如果在安全性中定义了处理程序,那么我需要添加重定向到处理程序似乎毫无意义。yml,这是我能想到的唯一选项。
如何解决这个问题?
看看默认处理程序的onAuthenticationSuccess()方法。
方法使用determinetargetUrl()
方法重定向到配置的目标路径。
public function onAuthenticationSuccess(Request $request, TokenInterface $token)
{
return $this->httpUtils->createRedirectResponse($request, $this->determineTargetUrl($request));
}
如果您清除onAuthenticationSuccess()
方法…default_target_path
只是不再使用了。
重定向是必要的,以便在身份验证成功后在浏览器中显示正确的url。