CakePHPでAuthコンポーネントを使用しているときに、ユーザがログインするタイミングでログをとるためのTIPSです。
Authコンポーネントの利用法などは割愛します。
Authのプロパティを設定するときに、autoRedirectを無効にします。
appControllerなどでAuth設定を行う場合
$this->Auth->userModel = "User"; $this->Auth->loginAction = "login"; $this->Auth->autoRedirect = false; $this->Auth->loginRedirect = "/"; // 以下略
usersController
function login() { if ($this->Auth->user()) { $this->loadModel("LoginLog"); // ログイン履歴テーブル $log = array( // ログ情報 ); $this->LoginLog->save($log); $this->redirect($this->Auth->redirect()); } }
autoRedirectだけ切っておけば任意の処理を実行できるようになるので、Cookieからログイン情報を読み込んだり2重ログインをチェックしたりできますね。
参考にしたのは以下のページです。
AuthComponent の変数 :: 認証 :: 主要なコンポーネント :: マニュアル :: 1.3コレクション :: The Cookbook