我的自定义成功处理程序具有以下方法:
function onAuthenticationSuccess(Request $request, TokenInterface $token)
{
// Do nothing for now
}
在我的 security.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;
,我也会遇到同样的错误。如果它在security.yml中定义,我需要向处理程序添加重定向似乎没有意义,这是我能想到的唯一其他选项。
如何解决此问题?
答案 0 :(得分:3)
查看default-handler的 onAuthenticationSuccess() 方法。
该方法使用方法determinetargetUrl()
重定向到配置的目标路径。
public function onAuthenticationSuccess(Request $request, TokenInterface $token)
{
return $this->httpUtils->createRedirectResponse($request, $this->determineTargetUrl($request));
}
如果您清除onAuthenticationSuccess()
方法...... default_target_path
就不再使用了。
在成功进行身份验证后,必须使用重定向才能在浏览器中显示正确的URL。