ここにある 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 Webサイトで見つけました:
これは、たとえば、コントローラーのメソッドからデータを受け取る要素があり、このメソッドの実装でログインを実行する必要がある場合に発生し、最終的にブラウザーがリダイレクトを拒否する原因となる無限ループが作成されます。
そして、彼らはこれを修正として提案します:
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')
)
);