下面是我的OpenId實現的一個工作示例。我使用hyves.nl作爲OpenId提供程序,但這也適用於me.yahoo.com和其他OpenId提供程序(但不包括Google)。Zend_OpenId_Extension_Sreg在我失敗
到目前爲止這麼好。但是現在我想從我的hyves配置文件中獲取暱稱和/或全名。但是當我在$ props數組中設置暱稱和/或全名爲true時,我根本無法再登錄。
我在這裏做錯了什麼?
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 2009-08-13 11:44:15
順便說一句,當使用鏈接中的固定代碼時,我不再收到INVALID錯誤。但$ this - > _ sreg-> getProperties()數組只是沒有賦值的鍵。 – Erik 2009-08-13 11:47:47