2011-03-30 350 views
1

有人可以幫助我得到這個工作。LightOpenId不重定向到登錄頁面

問題是它只是將一個查詢字符串附加到URL,就是這樣。沒有谷歌登錄頁面!

http://domain.nl/controller/function?action=verify&openid_identifier=https%3A%2F%2Fwww.google.com%2Faccounts%2Fo8%2Fid 

Mayby它是一些特定的事實,我使用mvc設計和htaccess文件。

現在我不清楚解決方案。

請點我在正確的方向

謝謝,理查德

在控制器....這是形式分

public function openid(){ 

     try { 
    $openid = new LightOpenID; 
    if(!$openid->mode) { 
     if(isset($_GET['action'])) { 
      $openid->identity = 'https://www.google.com/accounts/o8/id'; 
       //$openid->identity = 'https://www.google.com/accounts/o8/site-xrds?hd=YourDomain.in'; //this can be changed as you know... 
      header('Location: ' . $openid->authUrl()); 
     } 
/*<form action="?login" method="post"> 
    <button>Login with Google</button> 
</form>*/ 

    } elseif($openid->mode == 'cancel') { 
     echo 'Gebruiker heeft authenticatie geannuleerd!'; 
    } else { 
     echo 'Gebruiker ' . ($openid->validate() ? $openid->identity . ' heeft ' : 'heeft niet ') . 'ingelogd.'; 
    } 
} catch(ErrorException $e) { 
    echo $e->getMessage(); 
} 

    } 

回答

1

貌似重定向功能不起作用。檢查$openid->authUrl()是否返回正確的值。如果是這樣,問題與LightOpenID無關。

另外,如果你打算使用網站XRDS與谷歌認證,一定要包括由http://your.domain/openid返回文檔中的下列頭:

header('X-XRDS-Location: https://www.google.com/accounts/o8/site-xrds?hd=your.domain'); 

否則,驗證將失敗。