先日、toytter(10分で作ったTwitterもどき)をrails-2.0で作り直した時、acts_as_authenticatedが使えて安心してたんですが、実はacts_as_authenticatedのインストール時に
DEPRECATED: Use restful_authentication instead. Or, ask me for commit rights if you wish to maintain this plugin.
って表示されているのを見落としてました。
acts_as_authenticatedはもうメンテナンスしないから、今後はrestful_authenticationを使ってね、ってことらしい
というわけで、Rails2.0時代の認証系スタンダードになるかもしれないrestful_authenticationを使ってみるよ
まずはインストールから
$ ./script/plugin discover $ ./script/plugin install restful_authentication
インストール時にも表示される、READMEの内容が今回はなんか長い。
そして、各種ファイルを配置してくれるgenerateコマンドの使い方がこちら
$ ./script/generate authenticated user sessions
--include-activation
--stateful
なんかsessionsとか書いてあるし、オプションつけられたりするみたいだし、いろいろかわってる。
user
モデル名。同じ名前で登録関係のコントローラも作成される。以前のデフォルトでは、userモデルと登録のためのaccountコントローラだったけど、今回は両方とも同じ名前で作られる
sessions
ログインログアウト用コントローラ名。ログイン情報自体を一つのリソースとしてみなしているんだね。面白い。
--include-activation
メール認証を行うかどうか。最初の登録は仮登録で、届いたメールに書かれてるアドレスにアクセスすると登録が完了するってやつだね。以前は公式でやり方は紹介されていたけど、自分で実装する必要があった部分。でもobserver使うやり方は好きじゃないので、うちでは使ってなかった
--stateful
プラグインacts_as_state_machineを使ってユーザの状態管理をする。仮登録状態とか、正会員とか、退会とかね。そんな状態をいくつか定義しておいて、状態Aから状態Bに変わった時にはCという処理を行う、といったことをacts_as_state_machineを使うことで簡潔に書くことができる。利用には別途acts_as_state_machineのインストールが必要
generateで、いつものように大量のファイルが作成される。今回はとりあえずやれることは全部知っておきたいので、activationもstatefulも両方使うことにします。なのでacts_as_state_machineもインストールしておきます。
$ ./script/plugin install http://elitists.textdriven.com/svn/plugins/acts_as_state_machine/trunk/
それと、rspec使っている方は先にrspec on railsを入れておくと、generate時に自動でRSpec用のテストが生成されます。
とりあえず、ここで動かしてみる。
ユーザーの登録は/users/newから。
activationをするために、routes.rbに次の一行を追加
map.connect "activate/:activation_code", :controller => "users", :action => "activate"
これを追加せずに、直接/users/activate?activation_code=XXXみたいにURLを叩いても、usersにresourcesを設定しているので、showアクションが呼ばれてしまってactivationできない。
activationを通すことで、Userモデルのstateがpendingからactiveに変わって、ログインできるようになった。
ログインが/sessions/newで、ログアウトが/sessions/destroyになってます。
stateがpendingからactiveに変わる仕組みがacts_as_state_machineのお仕事。このプラグイン結構面白いので、ほかでもちょくちょく使ってます。今度詳しく説明します。
acts_as_authenticatedの時と同じで、カスタマイズしないでそのまま使えるものではないけれど、restの仕組みを勉強するのには良い教材なんじゃないかと思います。まずはインストールしてソースを読んでみることをおすすめします!
押忍
※このエントリはZDNetブロガーにより投稿されたものです。朝日インタラクティブ および ZDNet編集部の見解・意向を示すものではありません。
勝ち残るIT活用--中堅中小企業の現場からタレントの江口ともみさんをレポーターに、
全国さまざまな業種の企業担当者に聞く!
サイバー攻撃関連ニュースのまとめ特別企画:高度化するサイバー攻撃からビジネスを守る
~対策レポートや企業の製品動向をまとめ読み~
必要以上の容量を奨められていませんか?
→電気ガスのように使えるストレージを知る
率直な読者のご意見を全て公開
クラウドに対する疑問や実際の効果に迫る
セキュリティ、快適性、管理機能を網羅
BYODのスタンダードになり得る"DME"
ウェブ消費行動の専門家×日本ベリサイン
ネットで消費者の信頼を得るポイントとは
陥らないためのワンポイント解説&
”実証実験から読み解くセミナー”情報
百聞は一見にしかず!
集計/分析、蓄積/検索の体験セッション
福田和代が贈るZDNetオリジナルストーリー
見逃せない3部作の第1回が無料公開!
国土交通省やmixiが導入したシステムとは?
製造業者必見
オフライン環境のセキュリティ対策
物理パッチ適用までにサーバを襲う脅威から
自動的に保護するDeep Securityエージェント
日本最大級 サービスマネジメントイベント
IBM がクラウド、モバイル、インフラを語る
最新テクノロジ満載、「百度」の講演も!
TECHNOLOGY @WORK 東京 2012レポート
株式会社ヤマハミュージックメディア
株式会社日立システムズ
EMCジャパン株式会社
ZDNet Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。