PHP - Facebook 登入



使用者可以使用社交媒體登入(也稱為 SSO)登入 Web 應用程式。這樣,使用者無需建立新帳戶。相反,使用者可以使用其現有的社交媒體帳戶資訊登入。一些社交媒體登入的示例包括:Google、Facebook、LinkedIn、Apple。

本章將解釋如何使用 Facebook 憑據啟用 PHP 應用程式的登入功能。

新增 Facebook 登入功能的第一步是建立一個 Facebook 應用。訪問 https://developers.facebook.com/apps/creation/ 並使用您的 Facebook 帳戶登入。

PHP Facebook Login 1

接下來,輸入您要建立的 Facebook 應用的名稱。

PHP Facebook Login 2

進入應用設定並獲取應用程式 ID 和金鑰。

PHP Facebook Login 3

選擇平臺為網站。

PHP Facebook Login 4

接下來,您需要在 PHP 中設定 Facebook SDK。從“https://packagist.org/packages/facebook/php-sdk”下載 PHP 版 Facebook SDK,或使用 **composer**: composer require "facebook/graph-sdk-v5"。將 SDK 檔案解壓到您的 PHP 應用程式可以訪問的目錄。

要在 PHP 程式碼中配置 Facebook SDK,請在您的 PHP 檔案中包含 Facebook SDK 自動載入器:require_once __DIR__ . '/vendor/autoload.php';

設定您的應用的訪問令牌和應用金鑰。

$app_id = 'YOUR_APP_ID';
$app_secret = 'YOUR_APP_SECRET';

接下來,建立 Facebook 登入按鈕。建立一個 HTML 按鈕,並新增 Facebook 登入 JavaScript SDK 來觸發登入流程。

<button id="facebook-login-button">Login with Facebook</button>

包含 Facebook JavaScript SDK。

<script src="https://#/en_US/sdk.js#xfbml=1&version=v13.0&appId=YOUR_APP_ID&autoLogApp=true" async defer></script>

建立一個 PHP 指令碼以處理 Facebook 登入回撥。

<?php
   session_start();

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

   $helper = $fb->getRedirectLoginHelper();
   $accessToken = $helper->getAccessToken();

   if ($accessToken) {
      // User is logged in, handle their data
      $user = $fb->get('/me', ['fields' => 'id,name,email']);
      $_SESSION['user_data'] = $user;
      header('Location: profile.php');
   } else {
      // User is not logged in, redirect to login page
      $loginUrl = $helper->getLoginUrl(['scope' => 'public_profile,email']);
      header('Location: ' . $loginUrl);
   }
?>

登入成功後,將使用者資料儲存在會話中,然後重定向到受保護的頁面。在受保護的頁面上,檢查會話中的使用者資料以驗證訪問許可權。

廣告