<?xml version="1.0" encoding="UTF-8"?>

<feed xml:lang="ja" xmlns="http://www.w3.org/2005/Atom">
    <title>Web　酒　肴</title>
    <subtitle>Flex, ActionScript, CMS, Ruby on Rails, Java, NetBeansなどの技術情報その他</subtitle>
    <id>http://blog.garden-place.jp/oborobeer/:2</id>

    <link rel="alternate" type="text/html" href="http://blog.garden-place.jp/oborobeer/" />
    <link rel="self" type="application/atom+xml" href="http://blog.garden-place.jp/oborobeer/" />
    <generator uri="http://nucleuscms.org/">Nucleus CMS v3.31SP1</generator>
    <updated>2008-09-04T13:25:25Z</updated>

    <entry>
 <title type="html"><![CDATA[[NetBeans]TシャツGET！]]></title>
 <link rel="alternate" type="text/html" href="http://blog.garden-place.jp/oborobeer/item_193.html" />
 <author>
  <name>obanetty</name>
 </author>
 <updated>2008-09-04T13:25:25Z</updated>
 <published>2008-09-04T22:25:25+09:00</published>
 <content type="html"><![CDATA[<p>以前、<a href="http://blog.garden-place.jp/oborobeer/netbeans/item_74.html">NetBeansの翻訳記事</a>を書いたきっかけで、NetBeans翻訳プロジェクトの方よりTシャツをいただくことになりました。
発送先を聞かれたのでメールで答えると、早速家に届きました。</p>

<p>迅速なお取り引き、ありがとうございました。（←ヤフオク調）</p>

<p>Tシャツはこれ！</p>

<p><img src="http://blog.garden-place.jp/media/2/20080904-netbeans_omote.jpg" width="288" height="384" alt="" title="" /></p>

<p>翻訳プロジェクトらしく、裏はこんな文字が。</p>

<p><img src="http://blog.garden-place.jp/media/2/20080904-netbeans_ura.jpg" width="336" height="330" alt="" title="" /></p>

<p>他国語で翻訳の決意を表してるのだね。</p>

<p>最近Flexづいていて、NetBeansから離れていたけど、時間を見つけたらまた協力させてもらいたいと思いました。
だってこういうの、すごい嬉しいよね。</p>

<p>非売品かなぁ、これ。
だったら嬉しいな。</p>
]]></content>
 <id>http://blog.garden-place.jp/oborobeer/:2:193</id>
</entry><entry>
 <title type="html"><![CDATA[[RoR][NetBeans]ログイン認証プラグインacts_as_authenticated]]></title>
 <link rel="alternate" type="text/html" href="http://blog.garden-place.jp/oborobeer/item_117.html" />
 <author>
  <name>obanetty</name>
 </author>
 <updated>2008-02-27T14:57:37Z</updated>
 <published>2008-02-27T23:57:37+09:00</published>
 <content type="html"><![CDATA[<p>Ruby on Railsのプラグインについての話も少しだけしていこうと思う。
色んな便利なプラグインがあるそうで、まだ全然知らないんだけど、プラグインを組み合わせてアプリケーションを作れば色んな場面で楽ができそう。
これってCMSで色んなプラグインやモジュールを使用して、プログラミングレスでサイト構築していくのに似てるなって思った。</p>

<p>PCがモバイル化して携帯に近づいていき、携帯が機能面でPCに近づいていく今の状況とも似ているような気が。
MODxの社長だっけ？「いつかWEBプログラマを必要無くすることが我々の仕事だ」みたいなことを言ってた人って。
あり得なくはないと思った。
実際にはプログラマが完全にいなくなることはないと思うけど、サービスを提供する人ではなくてプラグインやフレームワーク、OSを提供する立場になっていくのではないだろうか。</p>

<p>さて、話を戻してログイン認証のプラグイン。
これを使えばRailsにおいて、ユーザ認証という部分がほぼ自動的に作成される。</p>

<p><em>基本機能</em></p>

<ul>
<li>ユーザ登録画面（ID、パスワード、メールアドレス入力）</li>
<li>入力チェック（必須入力項目や、文字数制限など）</li>
<li>ログイン機能</li>
<li>ログアウト機能</li>
<li>ログイン状態の記憶（次回から自動的にログイン後の画面が表示される）</li>
</ul>

<p>さらにもう少し手を加えれば以下のようなこともできるらしい</p>

<p><em>追加機能</em></p>

<ul>
<li>メール送信による本人確認</li>
</ul>

<p>現在一般的に普及しているWEBのサービスでされている認証は大方このプラグインでできてしまうのではないだろうか。
それではこのプラグインをNetBeansで導入する手順を一通り確認していこう。</p>
<p>Railsでのプロジェクト作成など、基本的な知識は以下のリンク参照のこと。</p>

<p><a href="http://blog.garden-place.jp/oborobeer/netbeans/item_74.html">[勝手に日本語訳] Getting Started With Ruby and Rails</a></p>

<blockquote>
  <p><em>注</em><br />
   なお、上の記事ではＤＢへの接続はしていないため、ＤＢ接続の設定法は記載されていません。この記事もRailsでの環境構築をできる方対象にしていますので、ＤＢ接続への説明は省略します。MySQLであれば何も考えず普段通りの設定でいけますが、JRubyとMySQL以外の組み合わせでは多少環境設定をする必要があります。その場合は以下の記事などを参照ください。</p>
  
  <p><a href="http://journal.mycom.co.jp/articles/2008/01/27/rubyonrails/index.html">【ハウツー】
  NetBeansでRuby on Rails開発</a><br />
  <a href="http://www.netbeans.org/kb/60/ruby/setting-up.html#dbservers"> Installing and Configuring Ruby Support - Using Database Servers With JRuby(英語)</a></p>
</blockquote>

<ol>
<li><p>Railsプロジェクトを作成</p>

<p>ここでは「LoginTest」という名前で作成します。
　プロジェクト名とＤＢへの設定をして（例ではMySQLなので、デフォルトのまま）完了ボタンを押します。
　　　　
<img src="http://blog.garden-place.jp/media/2/20080220-make_project.jpg" width="614" height="384" alt="Railsプロジェクトの作成" title="Railsプロジェクトの作成" /></p>

<p>構成の中のdatabase.ymlにてdevelopment用のDBサーバのホスト名、ユーザ名、パスワードも設定しておいてください。</p></li>
<li><p><code>acts_as_authenticated</code>プラグインをインストール</p>

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

<p><img src="http://blog.garden-place.jp/media/2/20080220-menu_plugin.jpg" width="555" height="523" alt="プラグインメニュー" title="プラグインメニュー" /></p>

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

<blockquote>
  <p>http://svn.techno-weenie.net/projects/plugins/</p>
</blockquote>

<p><img src="http://blog.garden-place.jp/media/2/20080220-add_repository.jpg" width="599" height="353" alt="null" title="null" /></p>

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

<p><img src="http://blog.garden-place.jp/media/2/20080220-add_plugin.jpg" width="594" height="352" alt="プラグインインストール" title="プラグインインストール" /></p>

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

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

<p><img src="http://blog.garden-place.jp/media/2/20080220-menu_generate.jpg" width="555" height="522" alt="生成メニュー" title="生成メニュー" /></p>

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

<p><img src="http://blog.garden-place.jp/media/2/20080220-generate.jpg" width="522" height="361" alt="生成" title="生成" /></p>

<p><em>脚注</em> ・・・ Userはモデル名、Accountはコントローラ名となります。</p></li>
<li><p>DBにテーブル生成</p>

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

<p><img src="http://blog.garden-place.jp/media/2/20080220-db_migrate.jpg" width="595" height="581" alt="DB migrate" title="DB migrate" /></p>

<p>これで準備は完了です。</p></li>
<li><p>サーバの実行</p>

<p>「主プロジェクトを実行」ボタン（もしくはF6）でサーバを起動します。</p>

<p><img src="http://blog.garden-place.jp/media/2/20080220-start_server.jpg" width="594" height="580" alt="start_server" title="start_server" /></p>

<p>サーバが起動し、ブラウザによってトップページが表示されます。</p></li>
<li><p>サインアップ</p>

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

<blockquote>
  <p>http://localhost:3000/account/</p>
</blockquote>

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

<p><img src="http://blog.garden-place.jp/media/2/20080220-signup.jpg" width="294" height="487" alt="signup" title="signup" /></p>

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

<p><img src="http://blog.garden-place.jp/media/2/20080220-signup_err.jpg" width="352" height="652" alt="signup-err" title="signup-err" /></p>

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

<p><img src="http://blog.garden-place.jp/media/2/20080220-logged_in.jpg" width="607" height="652" alt="logged_in" title="logged_in" /></p>

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

<blockquote>
  <p>http://localhost:3000/account/login</p>
</blockquote>

<p><img src="http://blog.garden-place.jp/media/2/20080220-login.jpg" width="252" height="395" alt="login" title="login" /></p>

<p>ログアウトのURLは以下。</p>

<blockquote>
  <p>http://localhost:3000/account/logout</p>
</blockquote></li>
<li><p>自分のアプリケーションに組み込む</p>

<p>このプラグインの目的は単にこうやって登録画面、ログイン画面、ログアウト画面を作成することではありません。
自分が作成したアプリケーションにログイン認証機能をつけ、ログインしないとアクセスできない画面を自由自在に設定できることにあります。
自分の作ったアプリケーションに認証機能を持たせるには、コントローラのクラス宣言の下に以下の２行を宣言してください。</p>

<pre><code>include AuthenticatedSystem
before_filter :login_required
</code></pre>

<p>アクションによってはログインしなくてもアクセスできるものがあるかもしれません。
everyoneというアクションはログインしなくてもよいのであれば、こういう書き方をします。</p>

<pre><code>include AuthenticatedSystem
before_filter :login_required, :except =&gt; [:everyone]
</code></pre>

<p>先ほど作成したログイン認証画面は普通にRailsのコントローラ・アクション・ビューとして作成されているので、画面のカスタマイズはもちろん、他にもいろいろな設定やカスタマイズが可能です。
こちらで<code>acts_as_authenticated</code>の内部にまで踏み込んだ非常に詳しい説明がありますので、興味のある方は参照してください。</p>

<p><a href="http://idm.s9.xrea.com/ratio/2007/09/18/000680.html"> ratio - rational - irrational | Rails勉強会@東京 第22回</a></p>

<p>僕もまだ全ては読めてませんが、非常に参考にさせていただきました。</p></li>
</ol>
]]></content>
 <id>http://blog.garden-place.jp/oborobeer/:2:117</id>
</entry>
</feed>