Yahoo IDがOpenIDに対応ということでぼちぼち試しておかないとなと思っていたところ、
zend framework1.5にZend_OpenIdというものを発見。
早速、ユーザーが最も多いであろうYahooでIDを取得してZend_OpenIdをサンプルで試してみたところどうもうまくいかない。
ソースを追ってみるとどうもYADISがらみのところでこけてる、という以前にYADIS関連が完全に抜けてる感じ。
community wikiのほうで探してみたけど、そのあたりまだ実装はされていない?(英語なんでなんとなくしかわかりませんが)
てことで、zend frameworkはあっさりあきらめて実装まで待つとするか。
で、次にJanRain PHP OpenID libraryというライブラリを試してみることに。
結局はまりにはまった。。主要な部分はぐぐれば結構すぐ見つかったけど、テストしていた環境ではエラーはでないけど、おかしな挙動が。
FireFoxで見るとどれで開くかってなダイアログが出て(中身は空)
IEでは「ページを表示できません」てな感じ。
エラー吐かないだけにどつぼ。
ソースを追っていっておそらくXRDSのXMLのパース、多分DomDocumentだかDomElementだかXPATHだかその辺りでおかしいと見当はついたけど理由がわかんねぇ。
エラーはでないけど属性がとれないだとか、子ノードが入ってないだとかなんですかぃ。
このへんがいくらぐぐっても目ぼしい情報は見つからず、ひょっとして環境かなと。
で、試しにphpのバージョンが違うもので試してみた結果が以下。
php5.1.4→○(リモート)
php5.2.1→○(ローカル)
php5.2.3→×(リモート)
php5.2.5→×(ローカル&リモート)
サーバー自体はとりあえずおいといてphpのバージョン5.2.2か5.2.3から何か致命的に変わった部分があるんかな?
結局コード自体の問題かは微妙なとこで、どっちにしてもメインで使ってるサーバーでは動かないんでどうしようもない。
てことで保留(笑
しかし、結構時間使ったのに成果なしか。。
今回YahooID(OpenID2.0)前提で試してたんでおかしい部分から考えるとOpenID1.0だとすんなりいくんでしょうね。
それじゃ意味ないんで試してないけど(笑
参照サイト
http://www.thinkit.co.jp/free/article/0712/7/2/
http://tech.feedforce.jp/openid_auth_20.html
http://kokogiko.net/m/archives/001420.html
http://blog.cles.jp/item/2405
http://blog.apecell.com/archives/335423.html
http://www.xugj.org/modules/d3forum/index.php?topic_id=590