mixiopenid

ちょっとした実験として、mixiアカウントを利用したOpenIDサーバとか考えてみる。 (OpenIDの説明はここがいいかも)

phpMixiPHPOpenIDを組み合わせれば出来そうだ。 PHPOpenIDには sampleserver.php という OpenIDサーバのサンプルコードが入っているのだが、それを「なるべくそのままに」利用することにする。

  1. さくらインターネットで動かしたいので、こんな感じでPHPOpenIDを修正する。
  2. 更に 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] みたいな感じのコードをログイン判定として追加してみる。 で、実際のコードはこんな感じになる。
  3. 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 は消そうかと思います。

で、感想。

  • こういう風に既存ライブラリ同士をくっつけるプログラミングって今後増えていくのだろうなぁ。
  • mixiを他サービスから利用するのはアクセス数が増えたりなんのかんので、mixi運営事務局からはあまり好まれる行為ではないのであまり派手にやるべきではない。 …が、非公式な方法でアクセスされるよりかは、WebAPIを提供して一括してアクセス数をコントロールできる状態にしたほうが実は運営側からも都合がいいのではないのだろうか。
  • OpenIDってもっと普及しないかな。