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