mixiopenid
ちょっとした実験として、mixiアカウントを利用したOpenIDサーバとか考えてみる。 (OpenIDの説明はここがいいかも)
phpMixi と PHPOpenIDを組み合わせれば出来そうだ。 PHPOpenIDには sampleserver.php という OpenIDサーバのサンプルコードが入っているのだが、それを「なるべくそのままに」利用することにする。
- さくらインターネットで動かしたいので、こんな感じでPHPOpenIDを修正する。
- 更に PHP_Mixi.php 対応の為、sampleserver.php を修正する。 例えば、 [php num=1] // ADD by dev require_once( './PHP_Mixi.php' ); $identity = getQueryVar('identity'); $password = getQueryVar('password'); $user = str_replace( addr.'/', '', $identity ); $mixi = new PHP_Mixi( $user, $password ); if( ! $mixi->login()){ echo sprintf( $loginpage, addr, $fail_to, $success_to,$identity,$identity); break; }[/php] みたいな感じのコードをログイン判定として追加してみる。 で、実際のコードはこんな感じになる。
- PHP_Mixi.php(あとSnoopy)はそのまま配置する。
できあがり↓ http://labo0000.jp/mixiopenid/sampleserver.php/nanashi@example.com
nanashi@example.com の部分はMIXIアカウント(メールアドレス)として置き換えれば、Identifiy な URLとして使用できる。 例えば、http://videntity.org/loginから'http://labo0000.jp/mixiopenid/sampleserver.php/nanashi@example.com'をOpenIDとして入力すれば、パスワード入力画面に遷移する。 そこでMIXIのパスワードを入力後、「Allow Authorization?」で「Yes」を選択すれば、http://videntity.org/にログインできるはず。 (MIXIパスワードは平文で流れているので注意が必要。っていうか実際に動かさないほうがいいかも) (ログイン後のアカウントが長すぎて辟易するだろうけど、そこは改善の余地あり)
あと、あくまでも実験なので気が向いたら sampleserver.php は消そうかと思います。
で、感想。