2011年11月14日月曜日

rails認証プラグイン:Devise導入:その1(インスコ)

認証機能はDeviseより先にmaigo@sekai氏のエントリーを参考にして、プラグインでパスワードの暗号化とsign_inまで実装することに成功(といっても動くだけのサンプルだが)した。
現場ではお客様のシステムに関する問題解決の旗振りや、案件提案を行う役回りばかりなので、こうして認証のイロハを学べるという事は正直なところ楽しい

さて、認証機能もちょっとだけ触った所で、現在Rails認証プラグインで一番人気のDeviseにチャレンジする事にする。
ASCIIcastsというページと13さいの備忘録を参考に導入を実施。一筋縄で行かないので数回に分けて実施する。

...13さいの備忘録に、氏が目指す認証の条件が書かれている。見習って私も書くことにする。(参考に氏の導入条件を斜体文字で表現)
1.ログイン時にパスワード認証 (7文字以上英数混在)
...6文字以上でOK。英数混合は条件にいれず。
2.ベーシック認証はイヤ!
...同意、暗号化認証を実施する。
3.パスワードの有効期限180日
...これは採用を見送る。但し採用できる拡張性は持たせる。
4.ユーザーがパスワードを更新できる。
...必須事項。もちろん。
5.ユーザーがパスワードを忘れた場合は再発行メールを送れる。
...これも必要な機能。
6.管理者のみユーザーを追加できる。
...これは「管理者は、他のユーザを追加できる。他のユーザは自分のみを追加できる」に変更。
7.ユーザーはコントロールのアクション毎のロール許可
...これも採用、ロール管理できなければ認証の意味なし。

8.(新)Deviseのデフォルトmodelを拡張し、作成したいアプリに必要なカラムにDML発行することが出来る。
9.(新)保存するパス自体が暗号化されている事。

よし、これで導入をしてみる。今日は下準備。
・gemfileに以下を追記
$ gem 'devise'
・bundleインストール
$ bundle install
・generateインストール
$ rails generate devise:install
config/environmentsのdevelopment.rb と production.rb と test.rbに以下を追加
 config.action_mailer.default_url_options = { :host => 'localhost:3000'
config/routes.rbに以下を追加
root :to => "welcome#index"

まずはここまで


0 件のコメント:

コメントを投稿