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


how to redirect the user to the previous link after login using facebook

我在我的网站上使用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);

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

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

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

$helper->getSessionFromRedirect();

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

因此,基本上将此链接添加到您在代码中提供给Facebook应用程序的变量$redirect_url中。

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

如果您想在用户

从 facebook 回来后将用户重定向到另一个页面,请创建配置变量来存储不同的重定向 URL,并根据您的条件使用header()函数重定向它们。

使用此代码...

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