ホーム > Web技術 > OpenIDについて調べてみる テストコード

OpenIDについて調べてみる テストコード

2008 年 1 月 26 日 コメントをどうぞ コメント

前回のエントリに続いてOpenIDのテスト話。 以下はテストコードから抜粋したものです。

// Consumerを作成
$store = new Auth_OpenID_FileStore($store_path);
$consumer = new Auth_OpenID_Consumer($store);

// OpenIDの認証プロセスを開始
if (!$req = $consumer->begin($openid))
	error_exit("指定されたOpenIDは無効です。");

// OpenIDプロバイダにリダイレクト
$url = $req->redirectURL($trust_root, $return_to);
if (Auth_OpenID::isFailure($url))
	error_exit("リダイレクトに失敗しました。");
header("Location: ".$url);

続いて受信フェーズ

// Consumerを作成
$store = new Auth_OpenID_FileStore($store_path);
$consumer = new Auth_OpenID_Consumer($store);

// OpenIDプロバイダからの返信情報
$resp = $consumer->complete($return_to);
if ($resp->status != Auth_OpenID_SUCCESS)
	error_exit("認証失敗:".$resp->status);
$openid = $resp->getDisplayIdentifier();

// 結果表示
print_html("result.html", array("msg"=>"認証成功: id=$openid"));

以上。 これで動作しています。

今回テストしてみて、初回のbegin で結構な時間を待たされるのが気になります。(特にWindows環境で顕著。PHPのmax_execution_timeを超えます) 他にもポリシーをどうするかとか、リダイレクトをformで実装する方法などを調べなくては。

余談ですが、openid.ne.jpのサイトはJanRainのserver.phpライブラリで構築されているようです。 (偶然サーバエラーを見かけて、そのファイル名がまさにこのライブラリでした…)

カテゴリー: Web技術
  1. コメントはまだありません。
  1. トラックバックはまだありません。

スパム投稿ではないことを確認するため、計算式の答えを半角数字で入力してください。 * Time limit is exhausted. Please reload the CAPTCHA.