1

私はCakePHPアプリケーションを構築していて、APIコントローラーを持っています。これはサイト全体で一般的ないくつかのメソッドを保持しており、私はそれらをjQueryAJAX呼び出しで使用して特定のことを行います。最近、Authコンポーネントを使用してユーザー登録を実装しましたが、ログインしていないときにAPIにアクセスしようとすると、ログインページにリダイレクトされます。

これは私のAppControllerコードです:

class AppController extends Controller {   
    public $components = array('Session', 'Auth' => array(
        'loginRedirect' => array('controller' => 'users', 'action' => 'images'),
        'logoutRedirect' => array('controller' => 'pages', 'action' => 'home')
    ));

    public function beforeRender() {
        $this->set('loggedIn', $this->Auth->loggedIn());
        $this->set('username', $this->Auth->user('username'));
    }

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

APIコントローラー内でそのメソッドを使用して特定のメソッドを許可できることは知っていますが、$this->Auth->allow()コントローラー全体にする方法はありますか?たとえば、ログインしていないユーザーがそのメソッドにもアクセスできるように、APIコントローラーに配置できるものはありますか?各アクションのメソッド名は30個ほどあるので、許可リストには入れたくありません。

ありがとう。

4

1 に答える 1

2

これをApiControllerに入れます:

public function beforeFilter() {
    parent::beforeFilter();
    $this->Auth->allow(); //pass no arguments to allow all
}
于 2012-07-11T01:16:45.837 に答える