HTML版において、mixi OpenIDの機能を追加しました。
PHP OpenID Libraryを利用して、OpenIDの認証を実現します。 このライブラリはOpenID認証の面倒な処理を引き受けてくれます。
ここのサンプルを元に、プログラムを作成しました。
大きな流れとしては、 (1) 自分のサーバからOpenIDサービスのサーバに接続 ※この際、認証後のURLを指定 (2) OpenIDサーバの認証URLにリダイレクトされる (3) ユーザが認証する (4) 自分の指定したURLに、パラメータつき(GET)でリダイレクトされる
また、内部的にはサーバのstore_path(個別設定)にセッションデータが保持されています。
OpenIDサーバから返されるパラメーター(GET)は以下の通り。
janrain_nonce openid_mode openid_identity openid_op_endpoint openid_return_to openid_response_nonce openid_assoc_handle openid_ns_sreg openid_sreg_nickname openid_ns openid_signed openid_sig openid_claimed_id
あとは、自サーバでセッション管理で処理します。 mixiの「イイネ!」みたいな、「yoo!yoo!」って機能つけてみましたw
ログアウト後に、もう一度mixi OpenID認証すると「データがありません」となるのだけど、 まだ対処しきれてません。 憶測では、自サーバでログアウト時に、サーバのstore_pathのセッションを切ってやればいいと思いますが。
これ読んだmixiユーザの人、mixiでOpenID認証後に↓の【yoo!yoo!】をクリックしてみてください。