OpenIDファーストプロトタイプを作ろう

2009年2月24日(火)
村上 知紀

実際に動きを確認してみる

 アクセスしてみると、入力フォームが表示されると思います。ページの下にPAPE policiesとあります。これは、PRがOPにリクエストする認証ポシリーですが、ここではいったんそのままにしておきましょう。

 次に、Identity URLの部分に「yahoo.co.jp」と入力して送信ボタンを押すと、既にyahooでopenidを作っていたので、リダイレクトバックする自分のサービスのURLなどを確認するための画面が出てきます。そこで「続ける」ボタンをクリックすると、認証の成功メッセージが表示されます(図2)。「mixi.jp」と入力した場合にも同様です。

 なお認証の成功画面のURLをコピーしてみると、以下のように非常に長いURLになっています。

http://yourhost/openid/examples/consumer/finish_auth.php?janrain_nonce=2009-02-05T04%3A14%3A42ZQ5.......................................

 レスポンスのデータが書き込まれていますが、URLをコピーして別のタブなどで見てみると、以下のメッセージが出てきて認証が通りません。

 OpenID authentication failed: Nonce already used or out of range

 これは第3回で説明したNonce(ノンス)が使われているというメッセージです。

 ここまで、サンプルコードの導入について非常に簡単に書きました。やってみると、ローカルからアクセスしても認証されない、あるいはAuthに対するinclude pathが通っていないためにプログラムが動かない、といった問題が出てくるかもしれませんが、その場合はプログラムよりも実行環境に問題がある場合が多いので、再度確認してみてください。

ファーストプロトタイプを作ってみる

 動いたところで一安心ですが、次に、このサンプルコードを少しカスタマイズしながら簡単にファーストプロトタイプを作ってみましょう。第1回で、OpenID 2.0になってからは、ユーザーはyahoo.co.jpといったOpenIDを発行するサイトのアドレスを入力する、あるいはサイトに設置したボタンをクリックすれば認証できるようになったことを説明しました。まずは、実際にボタンを使って認証プロセスをスタートしてみましょう。

 まずは、以下のサイトからYahoo!Japanのボタンを取得します。

http://developer.yahoo.co.jp/other/openid/loginbuttons.html

 認証の受付ページは、index.phpですから、フォームの代わりに取得したボタンにURLをつけてtry_auth.phpにアクセスさせます。いろいろなコードの書き方はあると思いますが、簡単に以下のようにしてみます。

Yahoo! JAPAN IDでログイン

 これで、try_auth.phpが呼び出されます。続いてtry_auth.phpを見てみましょう。

cNuts創業者/Webコンサルタント。クリエイティブパーソンのための検索/共有エンジンであるcNuts(http://cnuts.jp/)を日々開発するとともに、企業のパートナーとしてWebのサービス戦略、企画、設計、組織改善などに関するコンサルティングに従事。Webのサービスプランニングの進め方や考え方を解説した「Webサイトプランニングブック」(http://www.amazon.co.jp/gp/product/4774133892)を出版。雑誌への執筆多数。Web Innovator:(http://chikitomo.blogspot.com/

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています