2012-10-23 62 views
3

我想在我的網站上使用hybridauth實現twitter登錄。 我知道Yii有一個混合auth插件。我沒有使用它,因爲上次我使用時遇到了一些問題。我正在嘗試實施混合身份驗證的核心版本。與Yii導致重定向循環的混合認證

我打電話

$hybridauth = new Hybrid_Auth(Yii::app()->params['hybridauth']); 
$adapter = $hybridauth->authenticate('Twitter'); 

但由於某些原因,它重定向到http://localhost/yiiauth/authtest/?hauth.start=Twitter&hauth.time=1350973441,這將導致重定向循環。 有什麼辦法可以解決這個問題嗎?我的混合身份驗證的配置如下:

'params'=>array(

    'hybridauth'=>array(
     "base_url" => "http://localhost/yiiauth/authtest/", 

     "providers" => array ( 
      "Twitter" => array ( 
       "enabled" => true, 
       "keys" => array ("key" => "mykey", "secret" => "mysecret") 
      ), 
     ), 


     "debug_mode" => false, 

     "debug_file" => "", 
    ) 
), 

我hybridauth文件是/protected/extensions/hybridauth,我包括index.php文件

回答

1

你有沒有注意到在你的配置基礎URL的頂部Hybrid/Auth.php?它在驗證過程中返回回調的地方,並且您必須使用實時Web域來測試它。

「BASE_URL」=> 「的http://本地主機/ yiiauth/authtest /」,

而且Twitter的要求創建額外的令牌,我希望你有一個已經完成。

我已經在我的測試網站工作hybridauth:www.bemployable.com

3
  1. 混合身份驗證登錄Twitter和Facebook需要有效的域不是localhost。

  2. 你的base_url在配置文件「hybridauth.php」應該設置爲「/ hauth/endpoint」,即它必須指向端點。如果您通過.htaccess刪除了index.php,然後使用「/index.php/hauth/endpoint」。

  3. 將日誌文件夾中的hybridauth.log的權限設置爲可寫

參考鏈接:http://hybridauth.sourceforge.net/userguide/Configuration.html

+0

日誌是非常有用的信息。我有無限循環,因爲我沒有在控制檯中註冊Google+ API,並且Hybrid Auth使用它來檢查用戶數據。感謝日誌發現了。 – Zbyszek