如何使用Facebook登录后将用户重定向到上一个链接

时间:2015-06-16 07:51:40

标签: php facebook-login

我在我的网站上使用facebook登录,用户可以从不同的页面登录一切正常只是一件事,如何在登录后将用户重定向到上一个URL,这将是用户点击登录的地方不同的地方         

    use Facebook\FacebookSession;
    use Facebook\FacebookRedirectLoginHelper;
    use Facebook\FacebookRequest;
    use Facebook\FacebookResponse;
    use Facebook\FacebookSDKException;
    use Facebook\FacebookRequestException;
    use Facebook\FacebookAuthorizationException;
    use Facebook\GraphObject;
    use Facebook\GraphUser;
    use Facebook\GraphSessionInfo;
    use Facebook\FacebookHttpable;
    use Facebook\FacebookCurlHttpClient;
    use Facebook\FacebookCurl;
        $app_id='XXXXXXXXX';
        $app_sercret='XXXXXXXXXXXX';
         $redirect_url='http://example.com';

        //Intialize
        FacebookSession::setDefaultApplication($app_id,$app_sercret);
        $helper= new FacebookRedirectLoginHelper($redirect_url);
        $sess=$helper->getSessionFromRedirect();


        if(isset($_SESSION['fb_token'])){
                $sess = new FacebookSession($_SESSION['fb_token']);
            }
        //if exisit
           if(isset($sess)){
             $_SESSION['fb_token']= $sess->getToken();
             $request = new FacebookRequest($sess,'GET','/me');
             $response =$request->execute();
             $graph    = $response->getGraphObject(GraphUser::classname());
             $name     = $graph->getName();
             $id        = $graph->getId();
             $pimage     = 'http://graph.facebook.com/'.$id.'/picture?width=170';
             $timage     = 'http://graph.facebook.com/'.$id.'/picture?width=30';
             $email     = $graph->getproperty('email');
             $attributes=array(
            "user_fname" => $name,
            "user_email" => $email,
            "user_image" => $pimage,
            "user_thumb" => $timage,
        );
           $newuser   =Details::create($attributes);

3 个答案:

答案 0 :(得分:0)

当您在PHP页面上将用户重定向到Facebook登录页面时,请使用$ _SERVER ['HTTP_REFERER'](source)保存用户上次加载的页面。

用户登录后,Facebook会重定向到您的回调网址,从会话中提取该网址并将用户重定向到该网页。

答案 1 :(得分:0)

对于facebook登录,您需要在Facebook开发者页面中创建一个应用程序,然后需要在该应用程序中提供有效的重定向链接。以下代码,

$helper->getSessionFromRedirect();

从您的代码中检查构造函数FacebookRedirectLoginHelper()中提供的重定向链接是否存在于应用程序中。

所以基本上将您在代码中提供的变量$redirect_url中的此链接添加到您的脸书应用中。

在Facebook上成功登录后,您无需担心重定向,Facebook的工作是将您重定向回您提供的有效网址。

如果您想从Facebook回来后将用户重定向到另一个页面,则创建配置变量以存储不同的重定向网址,并使用header()函数根据您的条件重定向它们。

答案 2 :(得分:0)

使用此代码...

$return_url = base64_decode($_GET["return_url"]); //return url
header('Location:'.$return_url);