restful_authentication

吉見和也(Kazuya Yoshimi)

2008-03-25 23:34

先日、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編集部の見解・意向を示すものではありません。

ホワイトペーパー

新着

ランキング

  1. セキュリティ

    量子コンピューターの実用化がもたらす脅威とは?既存の暗号資産を守る“4つのステップ”を徹底解説

  2. セキュリティ

    攻撃者がクラウドを標的にする仕組みとは? CrowdStrikeのレポートから考察する

  3. 経営

    「作って終わり」のマニュアルを「活用される」マニュアルにするためには?

  4. セキュリティ

    脱「PPAP」で考える、重要なファイルを安全に送付・共有する最適解とは?

  5. コミュニケーション

    Slack 導入事例集 2023:伊藤忠テクノソリューションズはいかに営業チームを1つにまとめたのか

NEWSLETTERS

エンタープライズ・コンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]