2010年9月23日木曜日

Authlogicを試す(2)

プロジェクト内で使えるようになったところで、Authlogic Example Appを参考にしながらuserモデルを作ってみる。

Authlogic Example Appのuserはこんな感じ。

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


modelそのものは

class User < ActiveRecord::Base
acts_as_authentic
end

ですな。しかし/views/users/_form.html.erbには

<%= form.label :login %>

<%= form.text_field :login %>



<%= form.label :password, form.object.new_record? ? nil : "Change password" %>

<%= form.password_field :password %>



<%= form.label :password_confirmation %>

<%= form.password_field :password_confirmation %>


しか書かれていないので、パスワード関係とかは全部plugin側でやってくれるらしい。

で、自分のプロジェクトのuserは

class CreateUsers < ActiveRecord::Migration
def self.up
create_table :users do |t|
t.string :login
t.string :crypted_password
t.string :password_salt
t.string :persistence_token
t.integer :login_count
t.string :current_login_ip

t.timestamps
end
end

def self.down
drop_table :users
end
end


この程度にしておいて、emailなしでいけるもんだか試してみる。

結果的にはログイン名とパスワードだけで認証できました。
手軽に使えるのがいいですね。イントラネット内の軽いアプリならもう万々歳、という感じです。

パスワードの設定し直しやmail送付による認証といったオールインワンパッケージが必要な時はdevise、手軽に使いたいときはAuthlogic、でしょうかね。

0 件のコメント:

コメントを投稿