acts_as_authenticated

今までは手作りしてきた認証部分だけど、今回acts_as_authenticatedなんつーものを使ってみた。このWikiが参考になったけど、ウソも書かれているのでちょいと苦労した。以下、メモ。

全体方針

  • acts_as_authenticatedの基本実装
  • メールを使ったactivationの実装
  • パスワード修正の実装
  • パスワードリセットの実装

acts_as_authenticatedの基本実装

インストール認証設定。コントローラのapplication.rbに

  include AuthenticatedSystem

と書いておくのが基本。その上で、認証制御をかけたいコントローラにbefore_filter :login_requiredをつける。

class HogehogeController < ApplicationController
  before_filter :login_required

  def test
  end
end

メールを使ったactivationの実装

まず、User Activationを設定。account_controllerのsignup修正が必要。

  def signup
    @user = User.new(params[:user])
    return unless request.post?
    @user.save!
#    self.current_user = @user ←この行は不要になる
    redirect_back_or_default(:controller => '/account', :action => 'index')
    flash[:notice] = "Thanks for signing up!"
  rescue ActiveRecord::RecordInvalid
    render :action => 'signup'
  end

あと、上記ページに書かれているtest_should_activate_userに使うユーザ名はarthurではなくaaronにする必要あり。

その上で、Mailer Setupを実施。