我是一名初学者框架程序员。我确实使用ZfcUser进行身份验证,使用Bjyauthorize进行授权。我必须输入用户类型:普通用户和管理员。所以我想做的是在验证后将用户路由到页面A并将管理员路由到页面B. 在Zfcuser配置文件中,没有这种可能性,我们只有这一行
'logout_redirect_route' => 'zfcuser/login',
如何为我的不同用户指定不同的路由?
答案 0 :(得分:0)
对我来说,你的问题与ZfcUser或BjyAuthorize无关:只需让用户和管理员进入你的控制器,你可以根据用户角色发送它们。
return $this->forward()->dispatch('MyModule\Controller\Index', array('action'=>'PageB'));
答案 1 :(得分:0)
假设您在bjyauthorize中有一个“管理员”角色,您想要重定向到另一条路线。
在您的loginAction中替换代码:
if ($this->zfcUserAuthentication()->getAuthService()->hasIdentity()) {
return $this->redirect()->toRoute($this->getOptions()->getLoginRedirectRoute());
}
使用此代码:
if ($this->zfcUserAuthentication()->getAuthService()->hasIdentity()) {
$roles = $this->serviceLocator->get('BjyAuthorize\Provider\Identity\ProviderInterface')->getIdentityRoles();
if (in_array('admin',$roles))
{
return $this->redirect()->toRoute('admin_route');
} else {
return $this->redirect()->toRoute('user_route');
}
}