READMEを意訳&気になったところを調べてざっくりとまとめました。自分用のメモです。
基本的に
- ログイン/ログアウトの状態を管理するセッション
- ユーザモデルへの認証機能の追加
の二つの機能が定義されている。
ログイン/ログアウトの状態を管理するセッション
まずは、
class UserSession < Authlogic::Session::Base end
のように、Authlogic::Session::Baseを継承させたモデルを作る
ログイン方法
モデルみたいに、createやsaveメソッドでログインすることが出来る。
UserSession.create(:login => "bjohnson", :password => "my password", :remember_me => true) session = UserSession.new(:login => "bjohnson", :password => "my password", :remember_me => true); session.save UserSession.create(:openid_identifier => "identifier", :remember_me => true) # requires the authlogic-oid "add on" gem UserSession.create(my_user_object, true) # skip authentication and log the user in directly, the true means "remember me"
上記のようにするだけで、ログイン管理に必要な値をsessionに残すことが出来る。
ログイン情報の取得
ログイン後に、別のリクエストでログイン情報を使いたいときは下記のようにする
session = UserSession.find
ログアウトの方法
下記のようにしてログアウトできる。
session = UserSession.find
session.destroy
ユーザモデルへの認証機能の追加
認証の機能をUserモデルに追加するには下記のようにする(別にAccountモデルとかでもいい)
class User < ActiveRecord::Base acts_as_authentic do |c| c.my_config_option = my_value end # blockはオプション end
宣言するだけで、レコードを保存する際にカラム名を見て自動でvalidationをしてくれる。カラム名はauthlogicが定義しているものか、ブロック内で設定したカラム名を定義しておく必要がある。loginカラムにはvalidateするけどemailカラムはvalidateしない等の設定もブロック内で可能。
細かい設定に関してはrdoc内の関連する項目を個別に見ていくしかないみたい。例えばloginカラムの設定を変更したければ Authlogic::ActsAsAuthentic::Login::Config を見るといい。
セッションの自動作成/更新機能
下記のようにしてユーザの登録が成功したときに自動でログインする。(この機能はオフにすることも出来る)
User.create(params[:user])
また、ユーザがパスワードを変えたときにはsessionを自動で更新する。
Rails3で使うには
今のところ、authlogicをRails3で使うためにはGemfileで下記のような記述をすると良いです。
gem "authlogic", :git => "git://github.com/odorcicd/authlogic.git", :branch => "rails3"