OpenID本来の目的とは違うのですが、これをMacFeeling Softwareのダウンロードに利用できないかと試してみたので、忘れないうちに備忘録として書き留めておきます。
まず、Welcome to OpenID Enabled!のページから、「PHP OpenID Library 2.1.3」をダウンロードして解凍。
使うのは、「Auth」と「examples」フォルダ
2つのフォルダをサーバの任意の場所にアップ
私の利用しているXREA.COM、CORESERVER.JPでは、Opera-ismがOpenIDに対応。 – あまたの何かしら。のページに書かれているように、事前にフォルダを作成しておかなくてはならないので、
FTPクライアントソフトを使って、事前に「tmp」フォルダを任意の場所に作成(ここではexampleフォルダ内に作ったものとします)
その中に、さらに「associations」「nonces」「temp」 の3つのフォルダを作成。(パーミッションは707等の書き込み可に)
作成したら、example/consumer/common.phpをエディタで開き、
function &getStore()内の、
$store_path = "/tmp/_php_consumer_test";
を「tmp」フォルダを作成した位置に変更します。
例では、exampleフォルダ内に作ったので、common.phpと同じ階層にあります。
なので、
$store_path = "tmp";
に変更。
<?phpの直ぐ下に
define('Auth_OpenID_RAND_SOURCE', NULL);
を追加
さらに、私の利用しているCORESERVER ではAuth/Yadis/XML.phpに問題があるようなので、Geez in the universe: XREA / CORESERVER で OpenID を使うと Yahoo や livedoor が使えない問題で公開されているファイルに置き換えました。(なにも考えずに置き換えましたが、現在の環境なら必要ないのかもしれません。確かめていませんが…)
編集したファイル(example/consumer/common.php、Auth/Yadis/XML.php)をサーバにアップして、ブラウザでexample/consumer/にアクセス。mixi.jpと入力してVerifyボタンをクリックしたもののエラー
ググってみると、証明書をダウンロードすればいいらしいとのことで、
まず、mixi.jpからmixi.jp.crtをダウンロードしたけど結果はなぜかダメだった。
mixi OpenIDのサンプルコードをPHP OpenID Libraryを使って動かしてみた(訂正) – 大阪 本町で働くソーシャルアプリ開発者 ダイアリー
さらにググって、PHP OpenID 認証 実行サンプルのページ経由、cURL – Extract CA Certs from Mozillaのページから、cacert.pem ファイルをダウンロード
サーバの任意の場所に、cacert.pemをアップ
Auth/Yadis/ParanoidHTTPFetche.phpファイルをエディタで開いたら、131行目と195行目にある
curl_exec($c);
の前(2カ所)に
if ($this->isHTTPS($url)) {
curl_setopt($c, CURLOPT_CAINFO, '/ファイルをアップした場所までの、お使いのサーバのファイルパス/cacert.pem');
}
を追加して、サーバにアップ。
ブラウザでexample/consumer/にアクセス。mixiの場合は「https://mixi.jp」Yahoo! JAPANの場合は「https://me.yahoo.co.jp」と入力してVerifyボタンをクリックしたら成功しました。 :clap_tb:
あとは、example/consumer/index.php ファイルを自分の使いたいように編集すればOK。
コメント
CORESERVER を使い始めてまだ数ヶ月の初心者です。
こちらの情報のおかげで、Open ID のテストに成功しました。心から感謝します!
私のサイトにも、ぜひ導入できるように頑張ってみます。
ありがとうございました。
:wink_wp: