こんにちは。オガリア開発チームの粂です。
CakePHPのバージョン:2.4
ログイン時の成功・失敗をログに出力する方法についてです。
たいした内容ではないのですが、探してもあんまり見つからなかったのでブログに書いておきます。
- ログイン認証にはAuthComponentを使っている
- access.logにログインの成功・失敗ステータスをログインユーザ名と一緒に出力したい
- モデル名にUser、ログインIDはusernameを使用していて、コントローラー側ではauthというメソッドで認証する
まず、access.logの出力設定ですが、以下をbootstrap.phpに追記します。
CakeLog::config('access', array( 'engine' => 'File', 'types' => array('access'), 'file' => 'access', ));
これでlogメソッド呼び出し時に引数typeにaccessを指定すれば、app/tmp/logs/access.logにログが出力されます。
次にauthメソッドの実装例です。
public function auth() { $username = $this->request->data['User']['username']; if ($this->Auth->login()) { $this->log($username . ' login success', 'access'); return $this->redirect($this->Auth->redirectUrl()); } else { $this->log($username . ' login failed', 'access'); $this->redirect('index'); } }
こんな感じで書けば、ユーザ名とあわせてログイン成功・失敗のステータスが出力できます。
最後までお読みいただきありがとうございました!