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を使うようにしました。ので一度ブラウザを閉じると再認証が必要になりました。

などなど、超適当に作ってみましたが、mixiopenidプラットフォームは、他のと比べて面白いですね。勉強になりました。

参考にしたページ