这是一种在authError
上自定义CakePHP
网址的方法吗?如果我查看我Auth
中放置的AppController
组件,我有一个重定向操作loginRedirect
和logoutRedirect
,但我不知道是否可以设置像authErrorRedirect
:
<?php
class AppController extends Controller {
public $components = array(
'Session',
'Auth' => array(
'loginRedirect' => array('controller' => 'users', 'action' => 'index'),
'logoutRedirect' => array('controller' => 'users', 'action' => 'index'),
'authError' => 'You don\'t have the right to go there.',
// something like this
'authErrorRedirect' => array('controller' => 'users', 'action' => 'login'),
'authorize' => array(
'Controller',
'Actions' => array(
'actionPath' => 'controllers'
)
),
'authenticate' => array(
'Form' => array(
'fields' => array('username' => 'email')
)
)
),
'Acl'
);
我可以设置authError重定向操作吗?
答案 0 :(得分:0)
没有。如果您遵循简单身份验证和授权应用程序示例@ CakePHP Cookbook v2.x documentation,您应该重定向登录失败的登录操作“无效的用户名或密码...”。只有在您想要重定向其他操作时才有意义,在以下示例中为login2
public function login() {
if ($this->request->is('post')) {
if ($this->Auth->login()) {
$this->redirect($this->Auth->redirect());
} else {
$this->Session->setFlash(__('Invalid username or password, try again'));
$this->redirect(array('controller' => 'users', 'action' => 'login2'));
}
}
}