Я не могу понять, как получить значения расширения SREG при использовании Zend_Auth_Adapter_OpenId.Я следую за этими страницами документации:
http://framework.zend.com/manual/en/zend.auth.introduction.html
http://framework.zend.com/manual/en/zend.openid.consumer.html
В документации по Zend_Auth говорится, что при использовании OpenID сделать второй вызов authenticate (), например так:
$auth_result = $auth->authenticate(new Zend_Auth_Adapter_OpenId());
И это работает, когда $ auth_result заканчивается как Zend_Auth_Result :: SUCCESS.
Однако в документации Zend_OpenId_Consumer, чтобы получить возвращенные данные SREG, которые он говорит сделатьthis:
$sreg = new Zend_OpenId_Extension_Sreg(array('email'=>false,'fullname'=>false), null, 1.1);
$consumer = new Zend_OpenId_Consumer();
$consumer->verify($_GET, $id, $sreg);
И это тоже работает, так как verify () возвращает true, а $ sreg-> getProperties () возвращает запрошенные мной поля SREG.
Проблема в том, что я не могу сделатьобе эти вещи!Если я сначала сделаю этот вызов для authenticate (), то verify () вернет false.Если я сначала проверил (), то authenticate () возвращает Zend_Auth_Result :: FAILURE.Глядя на код в Zend / Auth / Adapter / OpenId.php, становится очевидным, что authenticate () вызывает метод verify () внутри, что имеет смысл.Однако значения SREG, которые заполняются этим внутренним вызовом, не предоставляются никакими средствами, которые я вижу.Чего мне не хватает?
(Набирая это и экспериментируя, я обнаружил, что могу просто получить значения SREG из $ _GET, например, $ _GET ['openid_sreg_email'], но, похоже, это не такбыть намеченным шаблоном. Это решает мою проблему, но я все же хотел бы знать, есть ли более официальное решение.)