调用authenticate方法后无法访问getUserProfile()

时间:2019-04-11 20:18:44

标签: php slim google-authentication facebook-authentication hybridauth

我正在尝试将Hybridauth v 3.0与Slim Framework结合使用,我设法使其正常运行,而我面临的唯一问题是,一旦我在hybridauth上调用了authenticate方法,页面就会进行重定向,进行身份验证(它要求这样的权限),然后降落在回调页面上。验证方法之后的所有内容都将被忽略。我无法将用户配置文件数据存储在会话中或作为cookie。我对框架和Hybridabuth都是新手,知道我要去哪里哪里对我很有帮助。

我正在使用Hybridauth v 3.0,PHP v 7.2.10

这是我的身份验证功能:-

public function fbSignUp($request, $response) {

            $config = [
                'callback' => \Hybridauth\HttpClient\Util::getCurrentUrl(),
                'providers' => [
                    'Facebook' => [ 
                        'enabled' => true,
                        'keys'    => [ 'id' => '*****', 'secret' => '*****' ],
                    ]
                ]
            ];

            try {    
                $hybridauth = new Hybridauth( $config );

                $adapter = $hybridauth->authenticate( 'Facebook' );
                $userProfile = $adapter->getUserProfile();
                print_r($userProfile);
                $_SESSION['user'] = $userProfile;
                $adapter->disconnect();
            }
            catch (\Exception $e) {
                echo $e->getMessage();
            }       
        }

这是我的composer.json文件:-


{
    "minimum-stability": "beta",
    "prefer-stable": true,
    "require": {
        "slim/slim": "^3.0",
        "slim/twig-view": "^2.4",
        "hybridauth/hybridauth": "~3.0@dev"
    },

    "autoload": {
        "psr-4": {
            "App\\":"app"
        }
    }

}

整个身份验证过程都有效,但是我无法获得用户个人资料,因为这行代码是'$ userProfile = $ adapter-> getUserProfile();'。页面重定向到身份验证后,将永远不会执行。我对框架和Hybridabuth都是新手,知道我要去哪里哪里对我很有帮助。

谢谢。

0 个答案:

没有答案