シェアする

  • このエントリーをはてなブックマークに追加

[CakePHP]Authコンポーネントでログイン時にログをとる

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

さくらのVPS

シェアする

  • このエントリーをはてなブックマークに追加

フォローする