跳至主要內容

設定 Facebook 社交登入

整合 Facebook OAuth 2.0 驗證 (Authentication) 系統,啟用「以 Facebook 登入」、帳號連結,以及安全存取 Facebook API。

提示:

本指南假設你已對 Logto 連接器 (Connectors) 有基本了解。若不熟悉,請參閱 連接器 (Connectors) 指南以開始使用。

開始使用​

Facebook 連接器 (Connector) 支援 OAuth 2.0 整合,讓你的應用程式可以:

  • 新增「以 Facebook 登入」驗證 (Authentication)
  • 將使用者帳號與 Facebook 身分連結
  • 從 Facebook 同步使用者個人資料資訊
  • 透過 Logto Secret Vault 安全儲存權杖,存取 Facebook API 以自動化任務(例如:回覆討論串、在你的應用程式中發佈內容與影片)

要設定這些驗證 (Authentication) 功能,請先在 Logto 建立 Facebook 連接器 (Connector):

  1. 前往 Logto > Connector > Social connector。
  2. 點擊 新增社交連接器 (Add social connector),選擇 Facebook,點擊 下一步 (Next),並依照分步教學完成整合。

步驟 1:在 Facebook App Dashboard 建立應用程式​

在你能將 Facebook 作為驗證 (Authentication) 提供者前,必須先在 Facebook 開發者平台建立應用程式,以取得 OAuth 2.0 憑證。

  1. 如果你還沒有帳號,請先註冊成為 Facebook 開發者。
  2. 前往 Apps 頁面。
  3. 點選你現有的應用程式,或建立新應用程式。
提示:

用例(Use case)是你的應用程式與 Meta 互動的主要方式,決定可用的 API、功能、權限與產品。如果你只需要社交驗證(取得 email 與 public_profile),請選擇「Authentication and request data from users with Facebook Login」。若你想存取 Facebook API,請選擇你偏好的用例——大多數用例在建立應用程式後也支援整合「Facebook Login for business」。

  1. 建立應用程式後,在應用程式儀表板頁面,前往 Use cases > Facebook Login > Settings 或 Facebook Login for business > Settings。
  2. 在 Valid OAuth Redirect URIs 欄位填入 Logto 的 Callback URI(可從你的 Logto Facebook 連接器複製)。使用者以 Facebook 登入後,會被導向此處,Logto 會用授權碼完成驗證 (Authentication)。
  3. 前往 Use cases,點擊你的用例的 Customize,新增權限範圍(Scopes)。建議新增 email 與 public_profile,這是 Logto 實現 Facebook 登入所需的基本權限。

步驟 2:以用戶端憑證設定 Logto 連接器​

  1. 在 Facebook App Dashboard,點選側邊欄的 App settings > Basic。
  2. 你會在面板上看到 App ID 與 App secret。
  3. 點擊 App secret 輸入框旁的 Show 按鈕以顯示並複製內容。
  4. 設定你的 Logto Facebook 連接器:
    • 將 App ID 填入 clientId 欄位。
    • 將 App secret 填入 clientSecret 欄位。
    • 在 Logto 點擊 Save and Done,即可將你的身分系統與 Facebook 連接。

步驟 3:設定權限範圍(Scopes)​

權限範圍(Scopes)定義你的應用程式向使用者請求哪些權限,並控制你的專案能從他們的 Facebook 帳號存取哪些私人資料。

在 Facebook App Dashboard 設定權限範圍​

  1. 前往 Facebook App Dashboard > Use cases,點擊 Customize 按鈕。
  2. 只新增你的應用程式所需的權限範圍。使用者會在 Facebook 使用者授權頁面 (Consent screen) 審核並授權這些權限:
    • 驗證 (Authentication)(必要):email 與 public_profile。
    • API 存取(選用):應用程式需要的其他權限範圍(例如存取 Threads API 的 threads_content_publish、threads_read_replies)。可參考 Meta 開發者文件 了解可用服務。

在 Logto 設定權限範圍​

根據需求選擇以下其中一種方式:

選項 1:不需額外 API 權限範圍

  • 保持 Logto Facebook 連接器的 Scopes 欄位為空。
  • 預設會請求 email public_profile 權限,確保 Logto 能正確取得基本使用者資訊。

選項 2:登入時請求額外權限範圍

  • 在 Scopes 欄位輸入所有需要的權限範圍,並以空格分隔。
  • 此處列出的權限範圍會覆蓋預設值,因此請務必包含驗證 (Authentication) 權限:email public_profile。

選項 3:後續漸進式請求權限範圍

  • 使用者登入後,可透過重新啟動聯邦社交授權流程,並更新使用者儲存的權杖集,按需請求額外權限範圍。
  • 這些額外權限範圍無需填寫在 Logto Facebook 連接器的 Scopes 欄位,可透過 Logto 的 Social Verification API 實現。

依照這些步驟,Logto Facebook 連接器會精確請求你的應用程式所需的權限——不多也不少。

提示:

如果你的應用程式請求這些權限以存取 Facebook API 並執行操作,請務必在 Logto Facebook 連接器啟用 Store tokens for persistent API access。詳情請見下一節。

步驟 4:一般設定​

以下為一些不會阻礙 Facebook 連線,但可能影響終端使用者驗證 (Authentication) 體驗的一般設定。

同步個人資料資訊​

在 Facebook 連接器中,你可以設定同步個人資料資訊(如使用者名稱與頭像)的政策。可選擇:

  • 僅於註冊時同步:使用者首次登入時擷取一次個人資料。
  • 每次登入時皆同步:每次使用者登入時都會更新個人資料。

儲存權杖以存取 Facebook API(選用)​

若你希望存取 Facebook API 並在使用者授權下執行操作(無論是社交登入或帳號連結),Logto 需取得特定 API 權限範圍並儲存權杖。

  1. 依照上述教學新增所需權限範圍。
  2. 在 Logto Facebook 連接器啟用 Store tokens for persistent API access。Logto 會將 Facebook 存取權杖安全儲存在 Secret Vault。
備註:

Facebook 不提供重新整理權杖 (Refresh tokens)。但啟用權杖儲存後,Logto 會在使用者驗證 (Authentication) 時自動請求長效型存取權杖(60 天)。在此期間,使用者可手動撤銷存取權杖,否則無需重新授權即可存取 Facebook API。注意:請勿在 Scope 欄位新增 offline_access,否則可能導致錯誤。

步驟 5:使用 Facebook 測試用戶測試登入(選用)​

你可以使用測試、開發者與管理員帳號測試應用程式登入。你也可以直接發佈應用程式,讓任何 Facebook 使用者都能登入。

  1. 在 Facebook App Dashboard,點選側邊欄 App roles > Test Users。
  2. 點擊 Create test users 按鈕建立測試用戶。
  3. 點擊現有測試用戶的 Options 按鈕以查看更多操作,例如「更改名稱與密碼」。

步驟 6:發佈 Facebook 登入設定​

通常只有測試、管理員與開發者用戶能登入應用程式。若要讓正式環境下的普通 Facebook 使用者也能登入,需將應用程式發佈。

  1. 在 Facebook App Dashboard,點選側邊欄 Publish。
  2. 如有需要,填寫 Privacy Policy URL 與 User data deletion 欄位。
  3. 點擊右下角的 Save changes 按鈕。
  4. 點擊應用程式頂部的 Live 開關按鈕。

運用 Facebook 連接器 (Connector)​

建立 Facebook 連接器 (Connector) 並與 Facebook 連結後,你可以將其整合進終端使用者流程。請依需求選擇下列選項:

啟用「以 Facebook 登入」​

  1. 在 Logto Console,前往 登入體驗 (Sign-in experience) > 註冊與登入 (Sign-up and sign-in)
  2. 在 社交登入 (Social sign-in) 區塊新增 Facebook 連接器 (Connector),讓使用者可用 Facebook 驗證 (Authentication)

進一步瞭解 社交登入體驗 (social sign-in experience)。

使用 Account API 在你的應用程式中打造自訂帳號中心,讓已登入使用者連結或解除 Facebook 帳號。參考 Account API 教學

提示:

你可以僅啟用 Facebook 連接器 (Connector) 以供帳號連結與 API 存取,而不啟用社交登入。

存取 Facebook API 並執行操作​

你的應用程式可從 Secret Vault 取得儲存的 Facebook 存取權杖 (Access token),呼叫 Facebook API 並自動化後端任務(例如發佈內容或管理貼文)。請參考相關教學以取得 API 存取所需的權杖。

管理使用者的 Facebook 身分​

使用者連結 Facebook 帳號後,管理員可在 Logto Console 管理該連結:

  1. 前往 使用者管理 (User management) 並開啟該使用者的個人資料。
  2. 在 社交連結 (Social connections) 區塊找到 Facebook 項目並點擊 管理 (Manage)。
  3. 在此頁面,管理員可管理使用者的 Facebook 連結、檢視所有從 Facebook 帳號授權並同步的個人資料資訊,以及檢查存取權杖 (Access token) 狀態。
備註:

Facebook 的存取權杖 (Access token) 回應不包含具體權限範圍 (Scope) 資訊,因此 Logto 無法直接顯示使用者授權的權限清單。不過,只要使用者在授權時同意了所需的權限範圍 (Scopes),你的應用程式在存取 Facebook API 時就會擁有相應權限。建議你在 Facebook 開發者後台與 Logto 中都正確設定所需的權限範圍 (Scopes),以確保應用程式具備必要存取權。

參考資料​

Facebook for Developers - 文件 Facebook 登入文件