PHP OpenIDのインストールについて
OpenIDのログインを実装するにあたって、
OpenID Enabled のPHP OpenID Libraryをダウンロードします。
ダウンロード先はhttp://www.openidenabled.com/php-openid/になります。
現時点での最新バージョンは2.1.1です。
ダウンロードしたファイルを解凍し、Auth ディレクトリをサーバーのインクルードパスが通っている任意の場所にすべてコピーします。
次にOpenIDの認証サーバとのやり取りに必要な情報の格納方法を選択します。
ファイルベースで利用したい場合は
Auth/OpenID/FileStore.php
MySQLを使いたい場合は
Auth/OpenID/MySQLStore.php
を使います。なお、データベースを利用したい場合は、PEARのDBライブラリが必要です。(PEAR::DBを利用する前提でライブラリが作られています。)
Auto_OpenID_MySQLStore を利用する場合の例は以下になります。
protected function &getConsumer() {
$store = $this->getStore();
$consumer =& new Auth_OpenID_Consumer($store);
return $consumer;
}
protected function getStore() {
$options = array(
'persistent' => true,
'portability' => 'DB_PORTABILITY_ALL',
);
$db = DB::connect(DSN, $options);
return new Auth_OpenID_MySQLStore($db);
}
ここでテーブルを2つ作成します。
CREATE TABLE `oid_nonces` ( `server_url` varchar(2047) NOT NULL, `timestamp` int(11) NOT NULL, `salt` char(40) NOT NULL, UNIQUE KEY `server_url` (`server_url`(255),`timestamp`,`salt`) ) ENGINE=InnoDB; CREATE TABLE `oid_associations` ( `server_url` blob NOT NULL, `handle` varchar(255) NOT NULL, `secret` blob NOT NULL, `issued` int(11) NOT NULL, `lifetime` int(11) NOT NULL, `assoc_type` varchar(64) NOT NULL, PRIMARY KEY (`server_url`(255),`handle`) ) ENGINE=InnoDB;