OpenIDファーストプロトタイプを作ろう
実際に動きを確認してみる
アクセスしてみると、入力フォームが表示されると思います。ページの下に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にアクセスさせます。いろいろなコードの書き方はあると思いますが、簡単に以下のようにしてみます。
これで、try_auth.phpが呼び出されます。続いてtry_auth.phpを見てみましょう。