PHP HybridAuth 社交登录根本不起作用。重定向至 ?hauth.start=Facebook&hauth.time

2022-08-30 22:44:28

我试图让HybridAuth Social Login在这个简单的php网站上工作。已下载并安装混合身份验证。然后发现即使这些示例也不适用于社交登录(在远程服务器上也尝试过。

正常的signin_signup示例工作正常。但是,每当我点击链接登录社交网络(即Facebook,twitter)时,它都会将我重定向到(MY_BASE_URL/index.php?hauth.start=Facebook&hauth.time),而不会显示任何登录窗口/错误消息。

我已经仔细阅读了此处发布的文档和其他解决方案。调整了我的配置.php有一个像 http://example.com/index.php 这样的基本网址。但它就是没有回应。我错过了什么吗?我已经花了2天的时间。

这是我的配置.php

return 
    array(
        "base_url" => "http://example.com/index.php", 

        "providers" => array ( 
            // openid providers
            "OpenID" => array (
                "enabled" => false
            ),

            "AOL"  => array ( 
                "enabled" => false 
            ),

            "Yahoo" => array ( 
                "enabled" => false,
                "keys"    => array ( "id" => "", "secret" => "" )
            ),

            "Google" => array ( 
                "enabled" => true,
                "keys"    => array ( "id" => "", "secret" => "" )
            ),

            "Facebook" => array ( 
                "enabled" => true,
                "keys"    => array ( "id" => "xxxxxxxxx", "secret" => "xxxxxxx" )
            ),

            "Twitter" => array ( 
                "enabled" => true,
                "keys"    => array ( "key" => "xxxxxxxx", "secret" => "xxxxxxxx" ) 
            ),

            // windows live
            "Live" => array ( 
                "enabled" => false,
                "keys"    => array ( "id" => "", "secret" => "" ) 
            ),

            "MySpace" => array ( 
                "enabled" => false,
                "keys"    => array ( "key" => "", "secret" => "" ) 
            ),

            "LinkedIn" => array ( 
                "enabled" => true,
                "keys"    => array ( "key" => "xxxxxxxx", "secret" => "xxxxxxx" ) 
            ),

            "Foursquare" => array (
                "enabled" => false,
                "keys"    => array ( "id" => "", "secret" => "" ) 
            ),
        ),

        // if you want to enable logging, set 'debug_mode' to true  then provide a writable file by the web server on "debug_file"
        "debug_mode" => false,

        "debug_file" => ""
    );

有人可以帮我吗?我有一种感觉,在搜索互联网很长时间后,它根本不能很好地工作。如果是这样的话,有人能指出一个更好的替代开源/免费社交登录库吗?


答案 1

除了tintinboss自己的答案之外,我发现我还需要检查一下(这是测试Facebook的一个例子):hauth_done

if (isset($_REQUEST['hauth_start']) || isset($_REQUEST['hauth_done']))
{
    Hybrid_Endpoint::process();
}

这终于让它工作了 - 谢谢丁丁博斯的有用答案!


答案 2

好吧,我自己解决了。

如前所述,文档确实不好。这是适用于将来想要集成此代码的任何人的解决方案

首先,你必须在配置中像这样制作你的baseurl.php

"base_url" => "http://yoursite.com/subdomain/index.php", OR

"base_url" => "http://yoursite.com/index.php",

请注意,我没有使用 www。不知道为什么,但它不适用于www。

现在棘手的部分,你必须把它包含在你的索引中.php文件

require_once( "PATH_TO_HYBRID/Auth.php" );
require_once( "PATH_TO_HYBRID/Endpoint.php" ); 

if (isset($_REQUEST['hauth_start']))
        {
            Hybrid_Endpoint::process();

        }

如果未提供终结点进程,则使您重定向到空白页。你必须把它添加到索引中.php就我测试过的。

现在代码应该可以正常工作:)如果它帮助某人,我会很高兴。


推荐