AUTHコンポーネントを使う
想像していたよりもずっと簡単で驚きました。
- usersテーブルを作成
- usersモデルを作成
- users_controllerを作成。ここにloginやlogout、add関連を書く
上記でアクセスしてみて無事ユーザ登録&ログインできるようになったら、
あとは使いたいコントローラで
var $components = array('Auth');
とやれば、未ログインなら/users/loginに自動的に飛ばされるようになります。
ひとつハマったのは、usersテーブルでpasswordカラムのサイズを小さくしていたことです。おかげでユーザ登録はできるものの、ログインに失敗していました。passwordカラムを大きめに設定することで解消しました。
次は、未ログイン時はguestとして参照、ログイン時はそのユーザとして参照、という動作をさせようと思います。yahooとかrakutenで、ログインしてればログインユーザ名を表示させるようにしたいけど、ログインは強制させたくない。ドキュメントを見た感じでは意外と簡単にいけるかも。
既に一部ページをリプレースしてみましたが、たったこれだけのソースでこんなことできていいの?と驚いています。これが効率ってやつか・・・