OpenIDのxrds文書の正しい書き方

2012年1月27日

OpenID: the Definitive Guide

とあるサービスでOpenIDでのログインを実装したのですがある日突然「データがありません」というエラーが・・・
エラーメッセージ不親切すぎるヨ(;´д⊂)


mixi

起きた原因

~~~
header( “X-XRDS-Location: http://hoge.com/yadis.xrds” ) ;
~~~

これを書いたから(;´д⊂)
どうやら1回これを書いてyadis.xrdsの存在を教えちゃうと、この一文を消したとしても見に来ちゃう模様・・・
そうなったらyadis.xrdsを正しく直して満足していただくしかないです

正しい?yadis.xrds

~~~




http://specs.openid.net/auth/2.0/return_to
https://hoge.com/auth.php
http://hoge.com
https://hoge.com



~~~
参考url:XRDSを設置して自分のドメインをOpenID(2.0対応)として使う | Xlune::Blog

ポイントはURIをいっぱい書くこと!w
yahoo,mixi,nttid,googleのopenidに対応したいとなるとどのURIを正しいと認識してくれるのやら、もはやよくわからんのです。。。
なのでそれっぽいものを書いておけば順番に見て行ってくれるので成功確率が上がります

また、nttidはreturn_toがhttpsじゃなきゃ駄目よって書いてますが、mixiやyahooはそうでもない模様
googleさんにいたってはXRDS自体を見にこないっぽいです

yadisをxmlとしてダウンロードできるようにする

apacheもしくは.htaccessに以下の1文を追記する
~~~
AddType application/xrds+xml xrds
~~~

しばしまつ

mixiは1時間ほど結果をキャッシュするらしく、1回ミスるとなかなかエラーが直りません
のんびり待ちましょう

yahooさんは常に見に来てくれるみたいでエラーがすぐに直りました

OpenIDすごく便利なんですが、問い合わせをしても問合せ先も全然把握していないようでログとかも見てくれないですし原因追求は自分でするしかないのがつらいところです。。