我正在尝试实现此处找到的 ACL 教程:http: //book.cakephp.org/2.0/en/tutorials-and-examples/blog-auth-example/auth.html
我按照所有说明进行操作,但是当我尝试转到[my_site]/users/add ERR_TOO_MANY_REDIRECTS 错误时。
我在 Cakephp 网站上找到了这个:
例如,当我们有一个元素从控制器的方法接收数据时,就会发生这种情况,并且该方法的实现需要进行登录会创建一个无限循环,最终导致浏览器拒绝重定向
他们建议将此作为解决方法:
function beforeFilter () {
$ this -> Auth -> allow ( 'CONTROLLER_NAME' );
}
这似乎不起作用。
如果我从这里更改 AppController:
public function beforeFilter() {
$this->Auth->allow('index', 'view', 'login', 'add');
}
到:
public function beforeFilter() {
$this->Auth->allow('*');
}
我不再收到错误消息,但被重定向到[my_site]/users/login
关于我做错了什么我无法查看用户添加页面的任何建议?蒂亚!
用户控制器:
public function beforeFilter() {
parent::beforeFilter();
$this->Auth->allow('add');
}
登录功能(UsersController):
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'));
}
}
}
验证组件加载器:
public $components = array(
'Session',
'RequestHandler',
'Auth' => array(
'loginRedirect' => array('controller' => 'projects', 'action' => 'index'),
'logoutRedirect' => array('controller' => 'pages', 'action' => 'display', 'home')
)
);