忙しい人にこそ見て欲しい。『忙しい人と仕事ができる人の20の違い。』
5222860965
1
こんにちは。卓司です。
今回はCakePHP2系の認証でUserモデル以外を利用して認証する方法についてまとめました。
CakePHPの認証を素直に使う場合、userモデルを作成して認証を行うと思います。
認証チュートリアルはこちら(CakePHP 本家)
しかし、Userモデルとは別モデルで認証させたいという場合は以下のようにします。
※上記のチュートリアルを済ませている状態の環境で以下の対応を行います。
認証で利用するModel, View, Controllerを作成します。
例えば、今回はManagerモデルを利用して認証させるとした場合、チュートリアルで作成したUserモデルをコピーしてManagerモデルを作成します。
※同様にして、View, Controller, DBも作成します。
チュートリアルで作成したAppController.phpを以下の通り修正してください。
public $components = array( 'Session', 'Auth' => array( // 認証時の設定 'authenticate' => array( 'Form' => array( // 認証時に使用するモデル 'userModel' => 'Manager', // 認証時に使用するモデルのユーザ名とパスワードの対象カラム 'fields' => array('username' => 'code' , 'password'=>'password'), ), ), // ログイン失敗時に出力するメッセージを設定 'loginError' => 'パスワードもしくはログインIDをご確認下さい。', // ログインしていない場合のメッセージを設定 'authError' => 'ご利用されるにはログインが必要です。', // ログインに使用するアクションを指定 'loginAction' => array('action' => 'login'), // ログイン後のリダイレクト先を指定 'loginRedirect' => array('controller' => 'posts', 'action' => 'index'), // ログアウト後のリダイレクト先を指定 'logoutRedirect' => array('action' => 'login'), ), );
これで、Managerモデルを利用して認証が行えます。
モデルを指定して認証する方法はCakePHP1系とは少し違うみたいなので、2系を利用される方は是非参考にしてみてください。
プログラマの卓司(たくじ)です。シェルについての記事なんかを書いてます。ガンダムとテニスが大好きです。よろしくお願いします!さーせん!
まいどおおきに。俺の名前は大田ひろゆき。LIGの広報担当や。FacebookとかTwitterとかメルマガで、皆にメッセージを届けさせてもらうで。ほんまに。 あと俺の発信する情報はLIGからの公式メッセージやと思ってもらってかまへんから。ってか公式のメッセージやわな。下にある「いいね!」を押すか、twitterをフォローして俺の情報を逃さんようにしてな。 メールマガジンの登録もめっちゃ簡単やから、おすすめやで~
380円の弁当をカードで買ったのにさ
広報担当 ひろゆき