PHP HybridAuth社会登入不工作。 重定向到?hauth.start = Facebo

2019-08-17 17:30发布

我试图让HybridAuth社会登录这个简单的PHP站点工作。 下载HybridAuth并安装它。 然后发现,即使例子并不为社会登录(试过远程服务器上工作过。

正常signin_signup例如工作正常。 但每当我点击链接登录到社交网络(即Facebook,微博)重定向我(MY_BASE_URL /的index.php?hauth.start = Facebook和hauth.time)不显示在所有任何登录窗口/错误消息。

我已经仔细阅读张贴在这里的文档和其他解决方案。 调整好自己的config.php有一个基本的URL像http://example.com/index.php 。 但它只是没有响应。 是否有什么我失踪? 我已经花了2天了。

这里是我的config.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" => ""
    );

有人可以帮帮我吗? 我得到了它不搜索互联网相当长的一段后,在所有的工作很好的感觉。 如果是这样的话,可以有人指向一个更好的选择,开源/免费的社交登入库?

Answer 1:

继tintinboss自己的答案,我发现我需要检查hauth_done以及(这是一个例子测试Facebook的):

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

这次终于得到它的工作 - 谢谢你tintinboss为有用的答案!



Answer 2:

好吧,我已经解决了它自己。

如前所述,文档真的不好。 下面是谁想要纳入未来这段代码的人的解决方案

首先,你必须让你的BaseURL这样在config.php

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

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

请注意,我没有使用WWW。 不知道为什么,但它不以www工作。

现在棘手的问题,你必须包括这在你的index.php文件

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

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

        }

端点过程是什么让你重定向到一个空白页,如果没有提供。 你必须将它尽可能我测试添加到index.php文件。

现在代码应该工作的优良:)我会很高兴,如果它可以帮助别人。



Answer 3:

@tintinboss和@dJomp答案整理我出去。 然而,我仍然需要获取信息出了登录的用户,这花了我很长确实如此。 在这里我分享最终版本,将让你远离这种可怕的循环。

$config = require 'config.php';
require_once( "Hybrid/Auth.php" );
require_once( "Hybrid/Endpoint.php" );

if (isset($_REQUEST['hauth_start']) || isset($_REQUEST['hauth_done'])) {
    Hybrid_Endpoint::process();
} else {
    try {
        $hybridauth = new Hybrid_Auth( $config );
        $google = $hybridauth->authenticate( "Google");
        $user_profile = $google->getUserProfile();

        echo "Hi there! " . $user_profile->email; 
    } catch( Exception $e ){
        echo "Ooophs, we got an error: " . $e->getMessage();
    }
}


Answer 4:

您好我已经试过这个问题的所有解决方案的建议,但还没有达到解决方案。 我的问题解决了这个样子。

“BASE_URL”=>的 'http://'.$_SERVER [' SERVER_NAME '] .'inauth / AUTH',

这里的关键点是服务器name.In此外,饼干记录您的会话,你不能预览您所做的改动。 清除Cookie并再试一次。



Answer 5:

我们使用nginx的,我们通过增加?$参数传递给我们的定位块固定它。 没有它,请求未通过hauth_done。

location / {
    try_files $uri $uri/ /index.php?$args;
}


文章来源: PHP HybridAuth social signin not working at all. Redirecting to ?hauth.start=Facebook&hauth.time