2012年2月23日木曜日

スマートフォン向けのdocomoid認証の実装とSUIDの取得について

3日間ほどドハマリしたので備忘録として。
(下記以外にも色んな理由はあるんですが←言い訳)
でdocomoの資料をみると実装としてはOpenIDのモジュールを使うのですぐ出来るだろーと余裕をかましてたらドハマリしました。
docomo関連のキーワードでぐぐって出てくる内容も具体的な実装方法は無かったのでこれが誰かのためになればと思います。

事前に必要なこと
docomoの公式サイト登録

docomoの参考資料読んでスムーズに行けばいいんですけど自分は一部の設定方法でドハマリしました。
具体的な作業としては

1 ファイルの設置(サイト構築)

2 環境に合わせて設定の変更(資料に書いてあるとおりに)

こんだけ。
こんだけなんだけどcacert.pemのせいでドハマリしてopenidのソースを見直すことまでしました。
でopenidのソースを追っていると
docomoの提供している 

Auth/Yadis/ParanoidHTTPFetcher.php

に書きなおしてる部分を発見。
これでググるとこちらのサイトが見つかり、こちらのご指摘通りにcacert.pemをダウンロードして指定してやれば上手く行きました。
自分でopensslでcacert.pemを生成してcheckのシェルスクリプトを走らせるとokが出るのですが、それでは認証が上手くいかない要注意です←これでハマった
またmixiや普通のopenidの設定でもここが鬼門になることが多いので覚えておいて損はないかと。
今後、会員サイトはOpenidをどんどん使うことになると思うので要勉強ですね。
自分もこの機会で色々勉強になりました。




PHP OpenID 認証 実行サンプル


あとはcURLのサイトが英語なので敬遠してたのが遠回りした原因かなとも思います。
(最終的には泣き泣き読んでかなり勉強になりました)
これからスマフォサイトにガラケーで以降を検討してる方などの参考になればと思います。