« OpenIDファウンデーション・ジャパンへの記者発表へ参加 | メイン | SecureSoft SpamHunter »

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;

 

 

About

2008年11月 8日 14:26に投稿されたエントリーのページです。

ひとつ前の投稿は「OpenIDファウンデーション・ジャパンへの記者発表へ参加」です。

次の投稿は「SecureSoft SpamHunter」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。


            
pronet_japan.jpg
            
logo_solution_partner_b_150x120.jpg
            
Symantec Registered Partner
            
Symantec Sales Expert
            
Symantec Sales Professional
            
oidfj_logo_s.gif