2009-08-13 1 views
0

Ниже приведен рабочий пример моей реализации 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(); 
    } 
} 

ответ

0

Может быть, эта ошибка? http://framework.zend.com/issues/browse/ZF-5266

+0

Только проверил мой профиль. Он полностью заполнен. – Erik

+0

BTW при использовании фиксированного кода по ссылке Я больше не получаю ошибку INVALID. Но массив $ this -> _ sreg-> getProperties() - это просто ключи без присвоенных значений. – Erik

0

Не знаю, нашли ли вы свой ответ уже. Но если вы этого не сделали, или кто-либо другой читает этот вопрос, как я, и я имею такую ​​же проблему, я просто нашел ответ.

Проблема с openId провайдером "hyves.nl" заключается в том, что они не возвращают параметры проверки $ _GET, а $ _POST.

# This works  
$consumer->verify($_POST, $id, $this->_sreg); 

 Смежные вопросы

  • Нет связанных вопросов^_^