Home > NetBeans > [RoR][NetBeans]ログイン認証プラグインacts_as_authenticated

[RoR][NetBeans]ログイン認証プラグインacts_as_authenticated

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(英語)

  1. Railsプロジェクトを作成

    ここでは「LoginTest」という名前で作成します。  プロジェクト名とDBへの設定をして(例ではMySQLなので、デフォルトのまま)完了ボタンを押します。      Railsプロジェクトの作成

    構成の中のdatabase.ymlにてdevelopment用のDBサーバのホスト名、ユーザ名、パスワードも設定しておいてください。

  2. acts_as_authenticatedプラグインをインストール

    作成したプロジェクトを右クリック > 「Rails プラグイン」をクリック後、ダイアログからリポジトリタグを選択。

    プラグインメニュー

    入手先のURLをリポジトリに登録します。 URLを追加ボタンを押下して以下のURLを入力して了解ボタン。追加されたらポップアップを閉じます。

    http://svn.techno-weenie.net/projects/plugins/

    null

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

    プラグインインストール

    終了したら「閉じる」ボタンを押下しダイアログを全て閉じます。

  3. LoginTestプロジェクトに認証処理を生成

    LoginTestプロジェクトを右クリック > 「生成」

    生成メニュー

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

    生成

    脚注 ・・・ Userはモデル名、Accountはコントローラ名となります。

  4. DBにテーブル生成

    LoginTestプロジェクトを右クリック > 「データベースマイグレーション」 > 「現在のバージョン」

    DB migrate

    これで準備は完了です。

  5. サーバの実行

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

    start_server

    サーバが起動し、ブラウザによってトップページが表示されます。

  6. サインアップ

    Accountというコントローラ名を指定していましたので、以下のURLにアクセスします。

    http://localhost:3000/account/

    ユーザ登録画面が現れますので、ログインID、メールアドレス、パスワードなど必要項目を入力します。 メールは実際には送信されませんので、ダミーのアドレスでけっこうです。

    signup

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

    signup-err

    成功すると、ログイン後の画面に遷移します。

    logged_in

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

    http://localhost:3000/account/login

    login

    ログアウトのURLは以下。

    http://localhost:3000/account/logout

  7. 自分のアプリケーションに組み込む

    このプラグインの目的は単にこうやって登録画面、ログイン画面、ログアウト画面を作成することではありません。 自分が作成したアプリケーションにログイン認証機能をつけ、ログインしないとアクセスできない画面を自由自在に設定できることにあります。 自分の作ったアプリケーションに認証機能を持たせるには、コントローラのクラス宣言の下に以下の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 酒 肴
このエントリにトラックバックはありません
このトラックバックURLを使ってこの記事にトラックバックを送ることができます。 もしあなたのブログがトラックバック送信に対応していない場合にはこちらのフォームからトラックバックを送信することができます。.

Home > NetBeans > [RoR][NetBeans]ログイン認証プラグインacts_as_authenticated

Search
Feeds

Page Top