ダウンロードとアップロード
まず最初に、PHP OpenID Library をダウンロードして、付属のサンプルプログラムの動作を確認します。展開したファイルやフォルダの内、Auth フォルダと examples フォルダのみをアップロードします。
PHP OpenID Library ファイル保存フォルダのエラー
ブラウザから examples/consumer/index.php にアクセスし、Identity URL を入力した上、[Verify] ボタンをクリックします。
すると、次のエラーが表示されます。
Could not create the FileStore directory '/tmp/_php_consumer_test'. Please check the effective permissions.
そこで、アクセス権のあるフォルダを適切なところに作成して、consumer フォルダにある common.php の次の行のパスを作成したフォルダのパスに変更します。
変更前 : $store_path =
"/tmp/_php_consumer_test";
変更後 : $store_path = "(作成したフォルダのパス)";
PHP OpenID Library 乱数発生のエラー
もう一度、ブラウザから examples/consumer/index.php にアクセスし、Identity URL を入力した上、[Verify] ボタンをクリックします。
すると、今度は次のエラーが表示されます。
Define Auth_OpenID_RAND_SOURCE as null to continue with an insecure random number generator.
乱数の発生で失敗しているので、CryptUtil.php の次の行を変更します。
変更前 : define('Auth_OpenID_RAND_SOURCE',
'/dev/urandom');
変更後 : define('Auth_OpenID_RAND_SOURCE', NULL);
PHP OpenID Library のテスト成功
さらにもう一度、ブラウザから examples/consumer/index.php にアクセスし、Identity URL を入力した上、[Verify] ボタンをクリックします。
すると、次の成功の旨のメッセージが表示されます。
You have successfully verified (Identity URL) as your identity.
次のエラーが出る場合は、先ほど作成したフォルダの中の temp フォルダ内のファイルを削除します。
OpenID authentication failed: Server denied check_authentication.
MySQL Store で使う
OpenID の処理に必要な情報の保存にファイルではなく MySQL などのデータベースを利用することもできます。なお、データベースの接続などに PEAR::DB ライブラリが必要です。
PHP OpenID Library に付属したサンプルプログラムを、ファイルから MySQL を利用するように変更してみます。
読み込むライブラリを変更する
まず、ファイルを利用するライブラリではなくデータベースを利用するファイルを読み込むように次の行を変更します。
変更前 : require_once "Auth/OpenID/
FileStore.php";
変更後 : require_once "Auth/OpenID/MySQLStore.php";
データベースに接続する
getStore 関数で MySQL に接続をして、戻り値を Auth_OpenID_FileStore
から Auth_OpenID_MySQLStore
に変更します。
変更後の getStore 関数は次の通りです。
function &getStore() {
$connect = DB::connect("mysql://(user):(password)@localhost/(dbname)");
return new Auth_OpenID_MySQLStore($connect);
}
PHP OpenID Library のテスト成功
ブラウザから examples/consumer/index.php にアクセスし、Identity URL を入力した上、[Verify] ボタンをクリックします。
次のメッセージが表示されれば成功です。
You have successfully verified (Identity URL) as your identity.