Rails restful-authentication
Ruby on Rails の認証プラグイン restful-authentication を使うメモ。
参考サイト
- technoweenie's restful-authentication at master - GitHub
- てらじろぐ | restful_authentication でメール認証するぞ
- restful_authenticationを触ってみた - idesaku blog
インストール
script/plugin install git://github.com/technoweenie/restful-authentication.git
ジェネレート。引数は
- ユーザとかアカウントとか言われるもののモデル
- セッションコントローラ
- RSpec のテストを生成
- アクティベーションを使う
script/generate authenticated user sessions --rspec --include-activation
rake db:migrate
rake db:migrate RAILS_ENV=test
次のコードが config/routes.rb に自動的に追加されている。
map.logout '/logout', :controller => 'sessions', :action => 'destroy'
map.login '/login', :controller => 'sessions', :action => 'new'
map.register '/register', :controller => 'users', :action => 'create'
map.signup '/signup', :controller => 'users', :action => 'new'
map.resources :users
map.resource :session
が、アクティベーションのために
map.activate '/activate/:activation_code', :controller => 'users', :action => 'activate', :activation_code => nilも追加する。
users_controller.rb の次の行を application_controller.rb に移動する。
# Be sure to include AuthenticationSystem in Application Controller instead
include AuthenticatedSystem
ログインが必要なアクションをコントローラで次のように指定する。指定したアクションを実行するとログイン画面に遷移するようになる。
before_filter :login_required, :only => [:new, :edit, :create, :update, :destroy]
アクティベーションメールのために、
config/environment.rb にオブザーバを追加。
# result-authentication のアクティベーション用オブザーバ
config.active_record.observers = :user_observer
config/environments/development.rb でメールの設定。
config.action_mailer.delivery_method = :sendmail
config.action_mailer.raise_delivery_errors = true
次のファイルでメールの内容等を指定する。
- app/models/user_mailer.rb
- app/views/user_mailer/signup_notification.erb
- app/views/user_mailer/activation.erb
これで http://localhost:3000/signup からサインアップするとメールが送信され、メールのリンクをクリックするとアカウントが使えるようになる。
:セキュリティ上の注意事項 config/initializers/site_keys.rb は秘密にしましょう。
0 件のコメント:
コメントを投稿