Authlogic

2010年9月13日

認証処理
openIDとかLDAPとかと連携して認証するためのプラグインが存在する

ホームページ

Github

Rails 3 に対応していないようなので、フォークの中からRails 3 対応中の物を探す
新しい物が良いな~と言うことで、
http://github.com/crossroads/authlogic
あたりが良いか?
だが、安定して使える物を探す必要はある。
オリジナルがRails 3 に対応すれば、それを使いたい。

インストール

Gemfileに

gem "authlogic", :git => "git://github.com/crossroads/authlogic.git", :branch => 'rails3'

を追加して

bundle install

実行

セッションモデルを追加

rails g authlogic:session user_session

ユーザモデルを追加

rails g model User \
login:string \
crypted_password:string \
password_salt:string \
persistence_token:string \
login_count:integer \
last_request_at:datetime \
last_login_at:datetime \
current_login_at:datetime \
last_login_ip:string \
current_login_ip:string

ユーザテーブルのマイグレーションファイルを修正

#db/migrate/20100903092404_create_users.rb

class CreateUsers < ActiveRecord::Migration
  def self.up
    create_table :users do |t|
      t.timestamps
      t.string :login, :null => false
      t.string :crypted_password, :null => false
      t.string :password_salt, :null => false
      t.string :persistence_token, :null => false
      t.integer :login_count, :default => 0, :null => false
      t.datetime :last_request_at
      t.datetime :last_login_at
      t.datetime :current_login_at
      t.string :last_login_ip
      t.string :current_login_ip
    end

    add_index :users, :login
    add_index :users, :persistence_token
    add_index :users, :last_request_at
  end

  def self.down
    drop_table :users
  end
end

マイグレーション実行

rake db:migrate

ユーザモデルの修正

#app/models/user.rb

class User < ActiveRecord::Base
  acts_as_authentic
end

ユーザセッションコントローラの作成

rails g controller user_sessions

以下作成中