[英]CakePHP 3.x using redirectUrl() on diffrent User Roles
我正在使用身份验证组件在登录和注销时设置重定向:
$this->loadComponent('Auth', [
'loginRedirect' => [
'controller' => 'Adresses',
'action' => 'index'
],
'logoutRedirect' => [
'controller' => 'Pages',
'action' => 'display',
'home'
],
'authenticate' => [
'Form' => [
'fields' => ['username' => 'email']
]
],
'authorize' => 'Controller',
]);
现在,我希望用户根据他们的角色在不同的页面上进行重定向,到目前为止效果很好:
if ($this->Auth->user('role') == 'admin') {
return $this->redirect([
'controller' => 'adresses',
'action' => 'adminindex'
]);
}
} elseif ($this->Auth->user('role') == 'user') {
return $this->redirect([
'controller' => 'adresses',
'action' => 'index'
]);
}
现在我想将不同的角色重定向到请求的链接。为此,我正在使用:
return $this->redirect($this->Auth->redirectUrl());
它仅适用于诸如视图和编辑之类的请求,否则它会退回到Auth Component redirect,我不想要。
当请求视图且尚未登录用户/管理员时,我如何才能完成在身份验证组件(应用控制器)的角色切换器和重定向中进行常规回退的操作。
为此,我尝试:
if(!empty($this->Auth->redirectUrl())){
}
哪个行不通,任何想法都将不胜感激。
$this->Auth->redirectUrl()
仅用于登录后重定向用户
如果您需要重定向到引用页面,则可以使用Controller::referer()
参见http://api.cakephp.org/3.3/class-Cake.Controller.Controller.html#_referer
您可以使用$this->Auth->user()
检查登录的用户
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.