- 2008-02-27 (Wed) 23:57
- NetBeans , Ruby On Rails ( プラグイン )
Ruby on Railsのプラグインについての話も少しだけしていこうと思う。 色んな便利なプラグインがあるそうで、まだ全然知らないんだけど、プラグインを組み合わせてアプリケーションを作れば色んな場面で楽ができそう。 これってCMSで色んなプラグインやモジュールを使用して、プログラミングレスでサイト構築していくのに似てるなって思った。
PCがモバイル化して携帯に近づいていき、携帯が機能面でPCに近づいていく今の状況とも似ているような気が。 MODxの社長だっけ?「いつかWEBプログラマを必要無くすることが我々の仕事だ」みたいなことを言ってた人って。 あり得なくはないと思った。 実際にはプログラマが完全にいなくなることはないと思うけど、サービスを提供する人ではなくてプラグインやフレームワーク、OSを提供する立場になっていくのではないだろうか。
さて、話を戻してログイン認証のプラグイン。 これを使えばRailsにおいて、ユーザ認証という部分がほぼ自動的に作成される。
基本機能
- ユーザ登録画面(ID、パスワード、メールアドレス入力)
- 入力チェック(必須入力項目や、文字数制限など)
- ログイン機能
- ログアウト機能
- ログイン状態の記憶(次回から自動的にログイン後の画面が表示される)
さらにもう少し手を加えれば以下のようなこともできるらしい
追加機能
- メール送信による本人確認
現在一般的に普及しているWEBのサービスでされている認証は大方このプラグインでできてしまうのではないだろうか。 それではこのプラグインをNetBeansで導入する手順を一通り確認していこう。
Railsでのプロジェクト作成など、基本的な知識は以下のリンク参照のこと。
[勝手に日本語訳] Getting Started With Ruby and Rails
注
なお、上の記事ではDBへの接続はしていないため、DB接続の設定法は記載されていません。この記事もRailsでの環境構築をできる方対象にしていますので、DB接続への説明は省略します。MySQLであれば何も考えず普段通りの設定でいけますが、JRubyとMySQL以外の組み合わせでは多少環境設定をする必要があります。その場合は以下の記事などを参照ください。【ハウツー】 NetBeansでRuby on Rails開発
Installing and Configuring Ruby Support - Using Database Servers With JRuby(英語)
Railsプロジェクトを作成
ここでは「LoginTest」という名前で作成します。 プロジェクト名とDBへの設定をして(例ではMySQLなので、デフォルトのまま)完了ボタンを押します。

構成の中のdatabase.ymlにてdevelopment用のDBサーバのホスト名、ユーザ名、パスワードも設定しておいてください。
acts_as_authenticatedプラグインをインストール作成したプロジェクトを右クリック > 「Rails プラグイン」をクリック後、ダイアログからリポジトリタグを選択。

入手先のURLをリポジトリに登録します。 URLを追加ボタンを押下して以下のURLを入力して了解ボタン。追加されたらポップアップを閉じます。
http://svn.techno-weenie.net/projects/plugins/

次にそのまま新しいプラグインタブを開き、acts_as_authenticatedを選択し、インストールボタンを押下。

終了したら「閉じる」ボタンを押下しダイアログを全て閉じます。
LoginTestプロジェクトに認証処理を生成
LoginTestプロジェクトを右クリック > 「生成」

Railsジェネレータダイアログにて「生成」というプルダウンメニューでauthenticatedを選択。 引数に「User Account」を指定し「了解」ボタンを押下。(UserとAccountの間には半角スペースが必要)。

脚注 ・・・ Userはモデル名、Accountはコントローラ名となります。
DBにテーブル生成
LoginTestプロジェクトを右クリック > 「データベースマイグレーション」 > 「現在のバージョン」

これで準備は完了です。
サーバの実行
「主プロジェクトを実行」ボタン(もしくはF6)でサーバを起動します。

サーバが起動し、ブラウザによってトップページが表示されます。
サインアップ
Accountというコントローラ名を指定していましたので、以下のURLにアクセスします。
http://localhost:3000/account/
ユーザ登録画面が現れますので、ログインID、メールアドレス、パスワードなど必要項目を入力します。 メールは実際には送信されませんので、ダミーのアドレスでけっこうです。

このとき、文字数が少なすぎるなど入力項目に不備があるとエラーメッセージが表示され、再度入力を促されます。
(以下はパスワードと確認用の文字列が一致しない例です。)
成功すると、ログイン後の画面に遷移します。

次回からは以下のURLにアクセスすればログイン画面が表示されます。
http://localhost:3000/account/login

ログアウトのURLは以下。
http://localhost:3000/account/logout
自分のアプリケーションに組み込む
このプラグインの目的は単にこうやって登録画面、ログイン画面、ログアウト画面を作成することではありません。 自分が作成したアプリケーションにログイン認証機能をつけ、ログインしないとアクセスできない画面を自由自在に設定できることにあります。 自分の作ったアプリケーションに認証機能を持たせるには、コントローラのクラス宣言の下に以下の2行を宣言してください。
include AuthenticatedSystem before_filter :login_requiredアクションによってはログインしなくてもアクセスできるものがあるかもしれません。 everyoneというアクションはログインしなくてもよいのであれば、こういう書き方をします。
include AuthenticatedSystem before_filter :login_required, :except => [:everyone]先ほど作成したログイン認証画面は普通にRailsのコントローラ・アクション・ビューとして作成されているので、画面のカスタマイズはもちろん、他にもいろいろな設定やカスタマイズが可能です。 こちらで
acts_as_authenticatedの内部にまで踏み込んだ非常に詳しい説明がありますので、興味のある方は参照してください。ratio - rational - irrational | Rails勉強会@東京 第22回
僕もまだ全ては読めてませんが、非常に参考にさせていただきました。
トラックバック:No Trackbacks
- トラックバック URL
- http://blog.garden-place.jp/action.php?action=plugin&name=TrackBack&tb_id=117
- Listed below are links to weblogs that reference
- [RoR][NetBeans]ログイン認証プラグインacts_as_authenticated from Web 酒 肴