我使用制造商捆绑包创建了一个标准的登录表单。当用户成功登录后,它会调用函数onAuthenticationSuccess重定向到新页面。
public function onAuthenticationSuccess(Request $request, TokenInterface $token, $providerKey)
{
return new RedirectResponse($this->urlGenerator->generate('app_homepage'));
}
但是,我想根据用户的角色重定向到不同的页面。我想做这样的事情:
if ($this->security->isGranted('ROLE_STANDARD_USER')) {
return new RedirectResponse($this->urlGenerator->generate('app_homepage'));
}
if ($this->security->isGranted('ROLE_SYS_ADMIN')) {
return new RedirectResponse($this->urlGenerator->generate('app_ADMINpage'));
}
但是我得到的错误是未定义的属性:应用程序\安全性\登录表单身份验证器::$security
提前非常感谢您的帮助。
我没有太多要说的,但似乎 LoginFormAuthenticator 的默认实现不请求授权检查器。
您可以通过使用构造函数将授权检查器注入类来解决此问题。依赖关系注入工作原理示例
看到你已经使用了maker捆绑包,可以安全地假设你已经为你的服务打开了自动连线,这意味着Symfony内核将自动完成所有其余的工作。