CakePHP2.x にてログイン機能を実装した後、新規actionがログイン画面にリダイレクトされてしまう問題に遭遇しました。
CakePHP2.10.2で確認しています。
公式
https://book.cakephp.org/2.0/ja/core-libraries/components/authentication.html
各Controller
1 2 3 4 |
public function beforeFilter() { parent::beforeFilter(); $this->Auth->allow('add'); } |
これでこのControllerのadd actionはログイン不要でアクセス出来ます。
AppController
1 2 3 |
public function beforeFilter() { $this->Auth->allow('index', 'view'); } |
これでAppControllerを継承しているControllerのindex, view actionはログイン不要でアクセス出来ます。
該当Controllerの全actionを許可したい場合
1 2 3 4 |
public function beforeFilter() { parent::beforeFilter(); $this->Auth->allow(); } |
何も書かない allow() でこのControllerの全actionがログイン不要でアクセス出来ます。
ちなみに
1 |
$this->Auth->allow('*'); |
はバージョンによっては認識されないのでご注意ください。CakePHP 2.0 (非推奨)と公式に記載がありました。
1 |
$this->Auth->allow(); |
はCakePHP2.1以降からのようです。
今回自分はCakePHP2.10.2でした。