簡體   English   中英

使用Facebook登錄后如何將用戶重定向到上一個鏈接

[英]how to redirect the user to the previous link after login using facebook

我在我的網站上使用Facebook登錄,用戶可以從不同的頁面登錄,一切正常,只是一件事如何在登錄后將用戶重定向到上一個網址,這將取決於用戶單擊登錄的位置

    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);

當您在PHP頁面上將用戶重定向到Facebook登錄頁面時,請使用$ _SERVER ['HTTP_REFERER']( )在會話中保存用戶上次加載的頁面。

一旦用戶登錄並且Facebook重定向到您的回調URL,請從您的會話中獲取該URL並將用戶重定向到該頁面。

對於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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM