使う機会がありそうだなぁ、と思って試してみた。
ライブラリはPHP OpenID Libraryを使った。バージョンは2.1.1。
Zend Frameworkは1.6.0RC2現在、
@todo OpenID 2.0 (7.3) XRI and Yadis discovery
とYadisに非対応なので使えない。openid_identifierにhttp://mixi.jp/を指定してもDiscovery failed.となってしまう。
さて、PHP OpenID Libraryの使い方は、基本的にはライブラリに入っているexamplesの通りだがところどころ不要な箇所もあるので書き直してみた。
http://zuzara.com/pub/mixiopenid.phps
>demo
GMPとCURLのextensionが必要。手元のFedoraに付属しているPHP5.1.6では問題なく動いた。
examplesにあるtry_auth.phpで$auth_request->shouldSendRedirect()としている箇所があるが、mixiはOpenID2なので常にfalseになる。上記ソースではその部分は削った。
最初、既にOpenIDを使っているサイトのHTTP通信を見て参考にしようと思ったが見た目にはリダイレクトしているのに302がなくて不思議に思っていた。OpenID2では、JavaScriptのPOSTで飛ぶ、とtry_auth.phpにコメントが書かれている。htmlMarkupというメソッドでHTMLを取得して、echoするという仕組み。
3 Trackbacks
[…] zuzara : PHPでmixi OpenIDを使うときのメモ (tags: php openid mixi) […]
[openid][webサービス]mixi openidに対応したファイルあぷろだの作り方…
mixi openidプラットフォームを利用すると、通常のユーザ認証作業を代行してくれるだけでなくて、マイミクのみ認証をしたり、指定のコミュニティーに入っている人だけ認証を実施したり…
PHP OpenID Library…
ダウンロードとアップロード まず最初に、PHP OpenID Library をダウンロードして、付属のサンプルプログラムの動作を確認します。展開したファイルやフォルダの内、Auth フォルダと examples フォルダのみをアップロードします。 PHP OpenID Library ファイル保存フォルダのエラー ブラウザから examples/consumer/index.php にアクセスし、Identity URL を入力した上、[Verify] ボタンをクリックします。 すると、次のエラー…