Ниже приведен рабочий пример моей реализации OpenId. Я использую hyves.nl как поставщик OpenId, но это также работает с me.yahoo.com и, возможно, с другими поставщиками OpenId (но не с Google).Zend_OpenId_Extension_Sreg не работает на меня
Пока все хорошо. Но теперь я хочу получить псевдоним и/или полное имя из моего профиля hyves. Но когда я устанавливаю псевдоним и/или полное имя в true в массиве $ props, я больше не могу войти в систему.
Что я здесь делаю неправильно?
class TestController extends Zend_Controller_Action
{
private $_sreg = null;
public function init()
{
$props = array('nickname' => false,
'email' => false,
'fullname' => false,
'dob' => false,
'gender' => false,
'postcode' => false,
'country' => false,
'language' => false,
'timezone' => false);
$this->_sreg = new Zend_OpenId_Extension_Sreg($props);
}
public function loginAction()
{
$consumer = new Zend_OpenId_Consumer();
if (!$consumer->login('hyves.nl', 'http://localhost/trouwcom/public/test/verify', 'http://localhost/trouwcom', $this->_sreg))
{
echo 'Login failed';
}
$this->_helper->viewRenderer->setNoRender();
}
public function verifyAction()
{
$consumer = new Zend_OpenId_Consumer();
if ($consumer->verify($_GET, $id, $this->_sreg))
{
echo 'VALID ' . htmlspecialchars($id);
$data = $this->_sreg->getProperties();
print_r($data);
}
else
{
echo 'INVALID ' . htmlspecialchars($id);
}
$this->_helper->viewRenderer->setNoRender();
}
}
Только проверил мой профиль. Он полностью заполнен. – Erik
BTW при использовании фиксированного кода по ссылке Я больше не получаю ошибку INVALID. Но массив $ this -> _ sreg-> getProperties() - это просто ключи без присвоенных значений. – Erik