2013-02-23 77 views
1

我正在使用LightOpenID庫嘗試通過OpenID註冊用戶。對於Google身份驗證,似乎一切正常,除了validate()總是失敗。我正在傾銷$ openid,所有數據似乎都是按順序排列的,儘管如此,validate()卻失敗了。OpenID/LightOpenID:validate()失敗

我看到這個問題LightOpenID validate() fail on Google Apps但我的問題稍微有點不同,因爲我確定響應不是找不到的服務器,但服務器出於某種原因以is_valid響應:false。爲什麼會這樣呢?

這是我該怎麼去了解它(在Laravel):

// testing with Google 
try { 
    $openid = new LightOpenID(); 
    if (!$openid->mode) { 
     $openid->required = array('contact/email'); 
     $openid->identity = 'https://www.google.com/accounts/o8/id'; 
     return Redirect::to($openid->authURL()); 
    } else if ($openid->mode == "cancel") { 
     echo "User has canceled authentication."; 
    } else { 
     $attributes = $openid->getAttributes(); 

     // debugging 
     echo ($openid->validate()) ? "Logged in " : "Not logged in "; 
     ?><pre><?php echo var_dump($openid);?></pre><pre><?php 
     echo var_dump($attributes);?></pre><?php 
    } 
} catch (ErrorException $e) { 
    echo $e->getMessage(); 
} 
return View::make('home.index'); 

任何幫助將不勝感激,謝謝提前。

+0

您不會將參數傳遞給構造函數,這會表示您使用的是舊版本的庫。嘗試[最新](https://gitorious.org/lightopenid/lightopenid/blobs/master/openid.php),它可能會解決您的問題。 – Mewp 2013-02-24 09:50:05

回答

0

我有同樣的問題。在我的大腦試圖解決問題後,我發現這個問題似乎是由於增加了 $openid->required = array('contact/email');

刪除或註釋掉該行將重新開始工作。爲什麼我不確定。

+0

我發現了完全相同的東西。這非常愚蠢,因爲雖然驗證失敗,它會返回電子郵件地址。 即使安裝了它,我的實現也不會使用curl。由於另一個影響它的設置(我不能改變)。有沒有人在這方面取得任何進展? – user2908587 2014-02-17 06:10:38