Ruby on Rails 2系でログイン認証を付けるrestful_authenticated | ~/techlog/

Ruby on Rails 2系でログイン認証を付けるrestful_authenticated


●最後に追記あり
※この方法も古いようです・・・(2010/08/18)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

restful_authenticated
rails2系ではログイン認証にrestful_authenticatedを使う方法


■やり方1(※こっちは上手くいかなかった)
script/plugin source http://svn.techno-weenie.net/projects/plugins
script/plugin install restful_authentication

■やり方2(※こっちは上手くいった)
※こちらは事前にgitサイト
http://git.or.cz/ から
wget 最新版を落とし
tar での解凍して
./configure
make
make install
でインストールする必要がある
んで、その後


■で共通のつづき
(mysqlのdbが構築されててユーザー設定がされてる前提で・・・)
rails hogefuga -d mysql でプロジェクト作る
ruby script/plugin install git://github.com/technoweenie/restful-authentication.git
でプラグインをインストールする。
次に
vendor/plugins/restful-authentication を vendor/plugins/restful_authentication に renameする

config/database.yml を開いてユーザー、パスワードを設定
rake db:create:all でデータベース作っとく

そしたら
ruby script/generate authenticated user sessions
で 認証用のマイグレーションファイルとかを準備しとく。

んで
rake db:migrate


controllers/users_controller.rb
controllers/sessions_controller.rb
を開いて以下の部分を削除
----------------
# Be sure to include AuthenticationSystem in Application Controller instead
include AuthenticatedSystem
----------------

controllers/application_controller.rb
を開いて
class 宣言の中の先頭に
include AuthenticatedSystem
と書き入れる

ここまで出来たらブラウザで
/users/new ・・・ユーザの作成
/sessions/new ・・・ログイン
/sessions/destroy ・・・ログアウト
にアクセスするととりあえず確認が出来る。

んで、
ruby script/generate scaffold sample id:integer memo:text
とかで適当にscaffoldを作る

で作ったマイグレーションファイルで実行してサイト構築
rake db:migrate

この後から作った scaffold での sample/new/ などに認証を必要とさせる場合は
before_filter :login_required
のフィルターをコントローラに設定する。

特定のメソッドだけを除外(認証無しで利用可能)にしたい場合は
before_filter :login_required, :except => [:index, :show]
などのように設定する。

■参考サイト
●「CYPHER-WORKS(コピペプログラマから書けるプログラマへ)」様
http://blog.cypher-works.com/?p=290
●「Ruby on Rails 2.x」様
http://blogs.yahoo.co.jp/katashiyo515/761808.html
●「sinsengumi_2 のプログラミング備忘録」様
http://wiki.livedoor.jp/sinsengumi_2/d/restful%5fauthentication%a5%d7%a5%e9%a5%b0%a5%a4%a5%f3%a4%f2%bb%c8%cd%d1%a4%b9%a4%eb
●「超ド素人のRuby on Rails挑戦日記」様
http://hajimete-ruby.jugem.jp/?eid=39


[追記](2010/08/18)
どうやらこの方法も古いらしい。
最近は restful_authentication も gem からインストールできるらしい。
けどどれも色々一長一短あるっぽい感じ。
色々調べてまたまとめようかな・・・