臉書登入時,我要怎麼帶使用者回到登入前頁面?如何丟值給臉書?

我現在遇到一個問題
當使用者點了一個連結之後到登入頁面,我會在網址加上他登入之前的網址例如

https://ha.xyz.com/signin?request=https://ha.xyz.com/products/121111

然後再登入頁面理所當然會讓使用者選擇要臉書登入或EMAIL登入
所以點下去的連結會是

https://www.facebook.com/v3.0/dialog/oauth?client_id=xxx&state=aaa&response_type=code&sdk=php-sdk-5.6.2&redirect_uri=https%3A%2F%2Fha.xyz.com%2F%2Fvendor%2Fsdk%2Ffacebook%2Flogin-callback.php&scope=email

這個連結的產生是 facebook 的 oauth

require_once '/vendor/autoload.php';

  $fb = new Facebook\Facebook([
  'app_id' => 'xxx',
  'app_secret' => 'aaa',
  'default_graph_version' => 'v3.0',
  ]);

  $helper = $fb->getRedirectLoginHelper();

  $permissions = ['email'];

$loginUrl = $helper->getLoginUrl(''.$host_url.'/vendor/sdk/facebook/login-callback.php', $permissions);

這問題就是我要怎麼給他request
$loginUrl產生的網址結構完全插不進去
而且在 login-callback.php 驗證成功後才能判斷是否有 $_GET['request']

阅读 2.4k
1 个回答

麻烦 var_dump($loginUrl)

说下oauth授权流程

  1. 网站构造oauth2.0授权链接并重定向到facebook登录页
  2. 用户同意登录后facebook带上code重定向到第1步中的callback链接
  3. callback链接中获取code加上appid和secret请求facebook获得用户access_token
  4. 使用用户access_token请求用户数据

你可以说一下现在是卡在第几步

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题