mixi openidに対応したファイルあぷろだの作り方(修正)
mixi openidプラットフォームを利用すると、通常のユーザ認証作業を代行してくれるだけでなくて、マイミクのみ認証をしたり、指定のコミュニティーに入っている人だけ認証を実施したりできる。
そこで今回は、指定のコミュニティーに所属している人だけがファイルのアップロード・ダウンロードが可能なwebサービスを作ってみる。本気でサービス化する気は無いので、ひどい完成度です。
まずこのリンクをクリックしてみてください、いきなりmixiに飛ばされると思います。
mixiでは、mixiアカウントを持っていて且つニコニコ動画のコミュニティーに参加している人だけが認証が通るようになっています。
ここで「認証を許可する」を選択すると元のページに戻ってきて認証が完了し、ファイルのダウンロードとかアップロードができたりするようになる。
では、ここから3分クッキングです。
まずw2boxというweb2.0ぽいファイル共有サービスのソースコードを落としてくる。
解凍して適切に配置する。この段階でちゃんとファイルのアップロードとかができるとこまで持っていく。
次にopenid対応の部分を実装する。まずPHP OpenID Libraryを落としてくる。んで、好きなとこに配置する。
そしたら下記のスクリプトを落としてきて適当な位置に配置して、w2boxのindex.phpの最初の行とかでrequireするようにする。
<?php ini_set('include_path', '***********');//PHP OpenID Libraryを置いたパス require_once 'Auth/OpenID/Consumer.php'; require_once 'Auth/OpenID/FileStore.php'; require_once 'Auth/OpenID/SReg.php'; define('SERVER_URI', 'http://60.86.8.32/nico');//サービスのURL define('SERVER_URI_RETURNTO', SERVER_URI . '?action=login');//認証成功時のリダイレクト先(変更必要なし) define('OPENID_IDENTIFIER', 'https://id.mixi.jp/community/1651291');//コミュニティのID define('FILE_STORE_DIR', '/tmp/openid/'); // 0777 ?>
OPENID_IDENTIFIERのところのコミュニティーのIDを変えれば別のコミュニティーでも利用できるはず。
セキュリティー上の問題を指摘していただいたので修正を反映しまいました。COOKIEからSESSIONを使うようにしました。ので一度ブラウザを閉じると再認証が必要になりました。
などなど、超適当に作ってみましたが、mixiのopenidプラットフォームは、他のと比べて面白いですね。勉強になりました。
参考にしたページ