混合身份验证与Yii导致重定向循环

时间:2012-10-23 06:39:12

标签: php yii hybridauth hybridauthprovider

我正在尝试使用hybridauth在我的网站上实现Twitter登录。 我知道Yii有一个混合auth插件。我没有使用它,因为我上次使用时遇到了一些问题。我正在尝试实现混合身份验证的核心版本。

我正在打电话

$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中,我将Hybrid/Auth.php包含在index.php文件的顶部

2 个答案:

答案 0 :(得分:3)

  1. Twitter和facebook的混合身份验证登录需要有效的域名而不是localhost。

  2. 配置文件“hybridauth.php”中的 base_url 应设置为“/ hauth / endpoint”,即它必须指向端点。如果您已通过.htaccess删除了index.php,请使用“/index.php/hauth/endpoint”。

  3. 将Logs文件夹中hybridauth.log的权限设置为可写

  4. 参考链接:http://hybridauth.sourceforge.net/userguide/Configuration.html

答案 1 :(得分:1)

您是否注意到配置中的基本网址?它是在auth期间返回回调的地方,您必须使用实时Web域来测试它。

“base_url”=> “http:// localhost / yiiauth / authtest /”,

此外,Twitter还需要创建额外的令牌,我希望您已经这样做了。

我在我的测试网站上工作过hybridauth:www.bemployable.com