devise

DeviseはWardenに基づくRailsのフレキシブルな認証プラグインです。
特徴は

  • Rackベース
  • Railsエンジンに基づく完全なMVC
  • 複数ロール(複数テーブル)が可能
  • モジュール方式概念に基づいている

ホームページ

インストール

Gemfileに

を追加して

実行

使い方

deviseを使用するために必要な最低限のファイルをインストールする

モデルを作成する

マイグレーション実行

Homeコントローラを追加(トップページのつもり)

home_controller.rbにログイン用のbefore_filter追加

このbefore_filterの追加で、HomeControllerへのアクセスはすべてユーザのみ可能となる。もしユーザでない場合、ログイン画面に転送される。
#app/controller/home_controller.rb 

※ここのauthenticate_user!のuserは、rails generate deviseで追加したモデル名
それによって、ロール(モデル)分けが出来るみたい

routes.rbの修正

HomeControllerのindexをルート指定する
#config/routes.rb
に以下を追加 

不要なファイルを削除

#public/index.html
このファイルを削除
このファイルがあると、routes.rbにroot設定したものが呼び出されない

サーバの起動

http://localhost:3000にアクセス

http://localhost:3000/にアクセスすれば、ログイン画面が表示される
この画面が気に入らなければ、ビューをカスタマイズすることが出来る

ビューのカスタマイズ

これで
#app/views/devise の配下にカスタマイズ用のビューが作成される
ビューだけのカスタマイズでは対応出来ない場合、コントローラもカスタマイズ出来る

deviseで使用する項目やメッセージの日本語化

#config/locales/devise.en.yml
このファイルをコピーしてdevise.jp.ymlにする。
ファイルを開き、3行目あたりのen:という所をjp:に変更。
各項目を日本語化する

コントローラのカスタマイズ

#app/controller/SessionsController.rbファイルを作成し
以下のようにクラスを継承します 

app/views/devise/sessions というディレクトリを app/views/sessionsに移動する。

routes.rbにカスタマイズしたコントローラを使うように設定を追加

Authlogic

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

ホームページ

Github

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

インストール

Gemfileに

を追加して

実行

セッションモデルを追加

ユーザモデルを追加

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

#db/migrate/20100903092404_create_users.rb

マイグレーション実行

ユーザモデルの修正

#app/models/user.rb

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

以下作成中