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.cn/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://127.0.0.1/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);
   }
?>

登录成功后,将用户数据存储在会话中,然后重定向到受保护的页面。在受保护的页面上,检查会话中的用户数据以验证访问权限。

广告