Zend_OpenId_Extension_Sreg bana başarısız

2 Cevap php

Aşağıda benim OpenID uygulama bir çalışma örneği. Ben OpenID sağlayıcısı olarak hyves.nl kullanabilirsiniz ama bu da (Google değil ama) yanı sıra me.yahoo.com ve muhtemelen diğer OpenID sağlayıcıları ile çalışır.

Şimdiye kadar iyi. Ama şimdi benim hyves profildeki takma ve / veya tamadı almak istiyorum. Ben $ sahne dizideki true takma ve / veya tamadı batınca ben hiç artık giriş yapamıyorum.

Ben burada yanlış ne yapıyorum?

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();
    }
}

2 Cevap

Zaten cevabını bulursa bilmiyorum. Yapmadın veya bir başkasının benim gibi bu soruyu okuma ve aynı sorunu yaşıyor ama eğer ben sadece cevap buldu.

OpenID sağlayıcı "hyves.nl" ile sorun onlar $ _GET tarafından değil $ _POST tarafından doğrulama parametreleri geri kalmamasıdır.

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