PHPのOpenIDプロバイダーからメールアドレスをリクエストします

StackOverflow https://stackoverflow.com/questions/1723351

  •  19-09-2019
  •  | 
  •  

質問

OpenIDプロバイダーからメールアドレスをリクエストする最も簡単な方法は何ですか?

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

プロバイダーは物事を異なって実装することを知っています。簡単な登録と属性交換の両方を行う必要があると聞きました。特に、MyopenidやGoogleなどの最大のプロバイダーと連携していることを確認したいと思います。

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

役に立ちましたか?

解決

Janrainには ID PHPライブラリを開きます, 、会社中心からOpenIDへの最初の図書館の1つ(私は信じています)。 JanrainのサイトであるMyopenidでの作業について言及しました。

とは言っても、個人的にはZend Libraryを使用しています(数年前にJanrain Libraryでプレイしました)。Zend Frameworkを使用して一般的に開発したからです。

プロバイダーがを使用している場合、ここにいくつかのコード例があります OpenID簡単な登録拡張機能.

これ Zend Referenceのセクション ガイドは、認証要求でユーザー情報をリクエストする方法を示しています。これがあなたのニーズのために編集された彼らの例コードです:

//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クラス, 、Zend Libraryにはaがあります AXサポートの機能リクエスト.

他のヒント

私は見ます Zend FrameworkのOpenIDライブラリ、Zend_openid. 。フレームワーク全体なしで使用できるはずです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top