3

OpenID プロバイダーから電子メール アドレスを要求する最も簡単な方法は何ですか?

この問題を単純化する優れた PHP ライブラリはありますか?

プロバイダーによって実装が異なることはわかっています。簡易登録と属性交換の両方を行う必要があると聞きました。特に、MyOpenID や Google などの最大のプロバイダーで動作することを確認したいと思います。

関連するが不十分な質問:

4

2 に答える 2

2

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 サポートの機能要求があります。

于 2009-11-12T17:54:06.657 に答える
1

Zend Framework の OpenID ライブラリである Zend_OpenIDを見てみましょう。フレームワーク全体がなくても使用できるはずです。

于 2009-11-12T16:51:06.070 に答える