JanRain にはOpen ID PHP Libraryがあります。これは、OpenID を中心とした会社の最初のライブラリ (と私は信じています) の 1 つです。JanRain のサイトである MyOpenID との連携について言及されました。
とは言うものの、個人的には現在 Zend ライブラリを使用しています (何年も前に JanRain ライブラリで遊んでいました)。
プロバイダーがOpenID Simple Registration Extensionを使用する場合のコード例を次に示します。
Zend リファレンス ガイドのこのセクションでは、認証リクエストでユーザー情報をリクエストする方法を示します。必要に応じて編集されたサンプルコードは次のとおりです。
//require e-mail, get nickname and fullname if available
$sreg = new Zend_OpenId_Extension_Sreg(array(
'nickname'=>false,
'email'=>true,
'fullname'=>false), null, 1.1);
$consumer = new Zend_OpenId_Consumer();
if (!$consumer->login($openid, $returnUrl, null, $sreg)) {
die("OpenID login failed.");
}
JanRain ライブラリで同じことを達成することは似ています。ライブラリ パッケージの try_auth.php ファイルから抜粋したコードを次に示します (探している基本的な機能を表示するために編集しました)。
$auth_request = $consumer->begin($openid);
$sreg_request = Auth_OpenID_SRegRequest::build(
// Required
array('email'),
// Optional
array('fullname', 'nickname'));
$auth_request->addExtension($sreg_request);
属性交換については、JanRain Auth_OpenID_AX Classesを確認してください。Zend Library には、AX サポートの機能要求があります。