« 2008年10月 | メイン

2008年11月 アーカイブ

2008年11月 8日

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月

2008年11月にブログ「LIN Networks」に投稿されたすべてのエントリーです。過去のものから新しいものへ順番に並んでいます。

前のアーカイブは2008年10月です。

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