AUTHコンポーネントを使う

想像していたよりもずっと簡単で驚きました。

  • usersテーブルを作成
  • usersモデルを作成
  • users_controllerを作成。ここにloginやlogout、add関連を書く

上記でアクセスしてみて無事ユーザ登録&ログインできるようになったら、
あとは使いたいコントローラで

var $components = array('Auth');

とやれば、未ログインなら/users/loginに自動的に飛ばされるようになります。


ひとつハマったのは、usersテーブルでpasswordカラムのサイズを小さくしていたことです。おかげでユーザ登録はできるものの、ログインに失敗していました。passwordカラムを大きめに設定することで解消しました。

次は、未ログイン時はguestとして参照、ログイン時はそのユーザとして参照、という動作をさせようと思います。yahooとかrakutenで、ログインしてればログインユーザ名を表示させるようにしたいけど、ログインは強制させたくない。ドキュメントを見た感じでは意外と簡単にいけるかも。

既に一部ページをリプレースしてみましたが、たったこれだけのソースでこんなことできていいの?と驚いています。これが効率ってやつか・・・