merb-authを使ってみた
Merbにはmerb-authというのが入っててそいつを使えば認証機能を簡単に実装できるみたいなので試してみた。
下準備
- merb-gen app でアプリケーションを作成しておく
- merb-gen resouce hoge とかしてViewとControllerとModelを作っておく
- rake db:automigrate とかしてマイグレーションしておく
- merb -iでUserテーブルにユーザを作成しておく
merb -iでユーザの追加をするには以下のようなコマンドをうてばいい
$ merb -i >> u = User.new(:login => "amacou") >> u.password = u.password_confirmation = "password" >> u.save
merb-authの設定
1.config/router.rbの修正
config/router.rbに以下のような記述を追加する
authenticate do resources :hoges #認証をかけたいリソース end
2.Controllerの修正
認証をかけるリソースのControllerの先頭に以下を追加
class Posts < Application before :ensure_authenticated #←を追加する
これだけ!
ね?簡単でしょう?
認証の確認
さっき認証をかけたリソースにアクセスすると以下のようなページが表示されれば成功
ちなみにこの画面はどうやらgemにあるmerb-auth-slice-passwordというslice読み込んで出しているみたい。
もし、画面を変更したいならapp/views/exceptions/unauthenticated.html.erbというファイルを新たに作成すればそれが認証時に呼ばれます。
あとは設定次第でOpenidが使えたりするらしいけど今日は眠いのでまた今度調べる。