[CakePHP] ユーザ登録とログイン認証を実装する (1)

良く出来たプラグインとかありそうだけど、自分の理解を深めるために手実装してみる。

CakePHPバージョンは2.7.3。

参考サイトは以下。

CakePHP 2.x – ユーザ登録(仮登録・メール・本登録)
http://kwski.net/cakephp-2-x/1100/

Creating a community in five minutes with CakePHP
http://www.aidanlister.com/2009/05/creating-a-community-in-five-minutes-with-cakephp/

ざっくり仕様

  • ユーザ用にユーザ登録画面を用意する
  • ユーザ登録画面には、ユーザ名、メールアドレス、パスワード(再入力あり)を入力する
  • ユーザ登録画面に入力されたメールアドレスに確認メールが送られる (仮登録)
  • 確認メールに記されているURLにアクセスすることでユーザ登録が完了する (本登録)
  • ユーザ登録完了後は、ユーザ名とパスワードでログインすることができるようになる
  • ログインするたびにDBに累積ログイン回数と最終ログイン日時を記録する
  • ユーザはログイン状態でパスワードが変更できる

usersテーブルの追加

ユーザ情報を格納するためのusersテーブルを追加する

  • usernameとemailは重複禁止とする
  • passwordにはハッシュ化したパスワードを格納する
  • activeは登録状態を示す(0=仮登録、1=本登録) デフォルトは0
  • loginsは累積ログイン回数を記録する (ログインするごとにインクリメントされる)
  • lastloginには最終ログイン日時を記録する

Userモデルの作成

(次回へ続く)

全ソース (GitHub)
https://github.com/84kure/cakephp2-sample-auth