Zend_Auth_Adapter_OpenIdを使用するときにSREG拡張値を取得する方法がわかりません。私はこれらのドキュメントページを以下のよ:にZend_Authのドキュメントで
http://framework.zend.com/manual/en/zend.auth.introduction.html
http://framework.zend.com/manual/en/zend.openid.consumer.htmlZend_AuthとOpenIDを使用してSREGデータを取得する
、(認証するための2番目の呼び出しを行うためにはOpenIDを使用しているとき、それは言う)、このように:
$auth_result = $auth->authenticate(new Zend_Auth_Adapter_OpenId());
そして、 $ auth_resultはZend_Auth_Result :: SUCCESSとして終了します。 Zend_OpenId_Consumerに文書でただし
、返さSREGのデータを取得するためには、それがこれを行うに言う:
$sreg = new Zend_OpenId_Extension_Sreg(array('email'=>false,'fullname'=>false), null, 1.1);
$consumer = new Zend_OpenId_Consumer();
$consumer->verify($_GET, $id, $sreg);
をさらに検証しているが、あまりにも動作します()がtrueを返し、$ sreg->のgetProperties ()は、私が要求したSREGフィールドを返します。
問題は、私はこれらの両方を行うことができないということです!最初にauthenticate()を呼び出すと、verify()はfalseを返します。最初にverify()を実行すると、authenticate()はZend_Auth_Result :: FAILUREを返します。 Zend/Auth/Adapter/OpenId.phpのコードを見ると、authenticate()が内部的にverify()を呼び出していることが明らかです。しかし、この内部呼び出しによって生成されたSREG値は、私が見ることのできる手段で公開されていません。私は何が欠けていますか?
(これを入力して、私は$ _GET ['openid_sreg_email']のように$ _GETのSREG値を取得できることを発見しましたが、それは意図したパターンのようには見えません。私の問題ですが、まだもっと公式な解決方法があるかどうかを知りたいのですが)。
解決方法を見つけましたか? – emaillenin
私はZendの使用をあきらめました。 janrain OpenIDライブラリはユーザーフレンドリーではありませんが、A)はOpenID 2.0をサポートしており、B)は実際に動作します。 –