OpenIDでのログイン機能を動かしてみてなんとなくわかった気になる(PHP編)

OpenIDってなんだよ、っていうことは検索すればWikipediaをはじめ、
細かい説明が書いてあるページがたくさん見つかると思うので、
今回は、http://www.openidenabled.com/が提供するPHPライブラリを使って
動作確認できるページをセットアップしてみる。

まずは、XAMPPのセットアップ。
OpenIDでのログインでは、https通信をする必要があるので、
手っ取り早く環境を構築するには、XAMPPが一番だともいます。
XAMPPをインストールしたら忘れずに起動しておきます。

次に、http://www.openidenabled.com/が提供するPHPライブラリを
ダウンロードして、/opt/lampp/htdocs/以下に保存+解凍。
php-openid-*.*.* というディレクトリができるが、
わかりやすくするためバージョン情報をrenameで隠蔽。
$ cd /opt/lampp/htdocs
$ wget http://openidenabled.com/files/php-openid/packages/php-openid-*.*.*.tar.bz2
$ tar jxvf php-openid-*.*.*.tar.bz2
$ mv php-openid-*.*.* phpopenid
次に、自分のホスト名がlocalhostだとOpenID認証サーバ側で怒られる場合があるので、
/etc/hostsを編集して、適当に自分のサーバに名前をつける
$ cat /etc/hosts
127.0.0.1 my.example.com
これで基本的な準備は完了。
http://my.example.com/phpopenid/examples/consumer/
にアクセスしてみて、


このような画面がでたら、OK
Identity URLに以下のものを入力すると、それぞれのプロバイダでログインできる
  • yahoo.co.jp」 と入力
    • Yahoo! Japan IDでログイン
  • yahoo.com」 と入力
    • Yahoo! ID(アメリカのYahoo! ID)でログイン
  • livedoor.com」 と入力
    • ライブドアIDでログイン
  • https://www.google.com/accounts/o8/id」 と入力
    • Google accountでログイン
    • Googleは上記のURLを入力する必要あり
  • mixi.jp」 と入力
ログインに成功すると、「You have successfully verified *****」
というメッセージとともにログインに使われたOpenIDが、緑の枠に表示されます。

動かすだけでなんとなく理解がすすむ気がするので、
興味と時間がある人はおためしください。

以下、はまった点など
  • GoogleのIdentity URLはgoogle.comじゃだめ。http://code.google.com/intl/ja/apis/accounts/docs/OpenID.html 
  • mixi.jpの証明書登録がめんどう
  • XAMPPをhttp://localhostで見ているとOpenIDログインできない
  • XAMPPの場合、/opt/lampp/share/curl/curl-ca-bundle.crtに既存の証明書ファイルがある