gpt4 book ai didi

php - Cakephp 2 ACL ERR_TOO_MANY_REDIRECTS

转载 作者:行者123 更新时间:2023-12-04 05:13:42 26 4
gpt4 key购买 nike

我正在尝试实现此处找到的 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 网站上找到了这个:

This happens when for example we have an element that receives data from a method of a controller, and the implementation of this method requires conducting the login would create an infinite loop that eventually will cause the browser to decline redirects



他们建议将此作为解决方案:
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

关于我无法查看用户添加页面的错误有什么建议吗?
蒂亚!

用户 Controller :
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')
)
);

最佳答案

您得到的错误与 ACL 无关,而是与 Auth 组件拒绝访问您的 UsersController 有关。 add 和 login 函数,它试图将用户重定向到这些函数。确保 addlogin函数是公开的,通过在您的 UsersController 中添加这一行(而不是您的 AppController ):

public function beforeFilter() {
$this->Auth->allow(array('add', 'login'));
}

您现在遇到的循环是因为 add 和 login 函数不是公开的,因此循环看起来像: add -> Unauthorized -> login -> Unauthorized -> login ……等等。

关于php - Cakephp 2 ACL ERR_TOO_MANY_REDIRECTS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14561468/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com