5丁目通信(仮称)

とある5丁目で活動する還暦を過ぎたWebプログラマーの覚え書きです。それとかかってくる迷惑電話や、家業のアパート経営について。

CakePHP2で管理者用ページだけの認証を行う話し


ユーザー認証と管理者認証を別のモデルで分けたいときのメモ。

管理者用の認証をAppController.phpで定義してしまう。isAdmin()はadmin_***のアクションを呼んだかどうかの判定。

app/Controller/AppController.php

class AppController extends Controller {
  public $components = array('Auth');

  public function beforeFilter() {
    if ($this->isAdmin()) {
      $this->Auth->authenticate = array(
      'Form' => array(
        'userModel' => 'User', //ユーザー情報のモデル
        ),
      );

      $this->Auth->loginAction = '/admin/users/login'; //ログインを行なうaction
      $this->Auth->loginRedirect = '/admin/'; //ログイン後のページ
      $this->Auth->logoutRedirect = '/admin/'; //ログアウト後のページ
      $this->Auth->authError = 'ログインしてください。';

    } else {
      $this->Auth->allow('*');
    }
  }
}

大分はっしょっているけど。こんな感じ。

あとは、ユーザー認証したいコントローラーでAuthコンポーネントを定義しておく。

著:山田祥寛
¥3,366 (2024/11/21 16:43時点 | Amazon調べ)
著:松浦 健一郎, 著:司 ゆき
¥2,574 (2024/11/21 16:43時点 | Amazon調べ)
著:谷藤賢一, 著:徳丸浩
¥2,750 (2024/11/21 16:43時点 | Amazon調べ)