跳到主要内容

设置 Facebook 社交登录

集成 Facebook OAuth 2.0 认证 (Authentication) 系统,实现“使用 Facebook 登录”、账户关联以及安全访问 Facebook API。

提示:

本指南假设你对 Logto 连接器 (Connectors) 有基本的了解。对于不熟悉的人,请参考 连接器 (Connectors) 指南以开始了解。

开始使用

Facebook 连接器支持 OAuth 2.0 集成,让你的应用可以:

  • 添加“使用 Facebook 登录”认证 (Authentication)
  • 将用户账户关联到 Facebook 身份
  • 从 Facebook 同步用户资料信息
  • 通过 Logto Secret Vault 安全存储令牌访问 Facebook API,实现自动化任务(例如:回复帖子;在你的应用中发布内容和视频)

要设置这些认证 (Authentication) 功能,请先在 Logto 中创建一个 Facebook 连接器:

  1. 前往 Logto > 连接器 > 社交连接器
  2. 点击 添加社交连接器,选择 Facebook,点击 下一步,并按照分步教程完成集成。

步骤 1:在 Facebook App Dashboard 上创建应用

在你可以将 Facebook 作为认证 (Authentication) 提供商之前,必须在 Facebook 开发者平台上创建一个应用,以获取 OAuth 2.0 凭据。

  1. 如果你还没有账号,请注册成为 Facebook 开发者
  2. 访问 Apps 页面。
  3. 点击你已有的应用,或创建一个新应用
提示:

用例是你的应用与 Meta 交互的主要方式,并决定了你的应用可以使用哪些 API、功能、权限和产品。如果你只需要社交认证 (Authentication)(获取 email 和 public_profile),请选择“Authentication and request data from users with Facebook Login”。如果你想访问 Facebook API,请选择你偏好的用例——大多数用例在应用创建后也支持集成“Facebook Login for business”。

  1. 应用创建后,在应用仪表盘页面,导航到 Use cases > Facebook Login > SettingsFacebook Login for business > Settings
  2. Valid OAuth Redirect URIs 中填写 Logto 的 Callback URI(从你的 Logto Facebook 连接器中复制)。用户使用 Facebook 登录后,会被重定向到这里,并携带 Logto 用于完成认证 (Authentication) 的授权码。
  3. 前往 Use cases,点击你的用例下的 Customize,添加权限 (Scopes)。我们建议添加 emailpublic_profile,这是在 Logto 中实现 Facebook 登录所必需的。

步骤 2:使用客户端凭据配置 Logto 连接器

  1. 在 Facebook App Dashboard,点击侧边栏 App settings > Basic
  2. 你将在面板上看到 App IDApp secret
  3. 点击 App secret 输入框旁的 Show 按钮以显示并复制其内容。
  4. 配置你的 Logto Facebook 连接器设置:
    • clientId 字段填写 App ID
    • clientSecret 字段填写 App secret
    • 在 Logto 中点击 Save and Done,将你的身份系统与 Facebook 连接。

步骤 3:配置权限 (Scopes)

权限 (Scopes) 定义了你的应用向用户请求的权限,并控制你的项目可以从他们的 Facebook 账户访问哪些私有数据。

在 Facebook App Dashboard 配置权限 (Scopes)

  1. 前往 Facebook App Dashboard > Use cases,点击 Customize 按钮。
  2. 只添加你的应用所需的权限 (Scopes)。用户将在 Facebook 用户授权页面 (Consent screen) 上审核并授权这些权限:
    • 用于认证 (Authentication)(必需)emailpublic_profile
    • 用于 API 访问(可选):你的应用需要的其他权限 (Scopes)(如访问 Threads API 的 threads_content_publishthreads_read_replies)。可浏览 Meta Developer Documentation 获取可用服务。

在 Logto 中配置权限 (Scopes)

根据你的需求选择以下一种或多种方式:

方式 1:无需额外 API 权限 (Scopes)

  • 在 Logto Facebook 连接器的 Scopes 字段留空。
  • 默认会请求 email public_profile 权限 (Scopes),以确保 Logto 能正确获取基础用户信息。

方式 2:登录时请求额外权限 (Scopes)

  • Scopes 字段中输入所有需要的权限 (Scopes),用空格分隔。
  • 你在这里填写的权限 (Scopes) 会覆盖默认值,因此请务必包含认证 (Authentication) 权限:email public_profile

方式 3:后续按需增量请求权限 (Scopes)

  • 用户登录后,你可以通过重新发起联合社交授权 (Authorization) 流程并更新用户存储的令牌集,按需请求更多权限 (Scopes)。
  • 这些额外权限 (Scopes) 无需在 Logto Facebook 连接器的 Scopes 字段中填写,可以通过 Logto 的 Social Verification API 实现。

按照这些步骤操作后,你的 Logto Facebook 连接器只会请求你的应用所需的权限 (Permissions)——不多也不少。

提示:

如果你的应用请求这些权限 (Scopes) 以访问 Facebook API 并执行操作,请确保在 Logto Facebook 连接器中启用 Store tokens for persistent API access。详见下一节。

步骤 4:常规设置

以下是一些不会阻止 Facebook 连接但可能影响终端用户认证 (Authentication) 体验的常规设置。

同步用户资料信息

在 Facebook 连接器中,你可以设置同步用户资料信息(如用户名和头像)的策略。可选项包括:

  • 仅在注册时同步:用户首次登录时获取一次资料信息。
  • 每次登录时都同步:每次用户登录时都会更新资料信息。

存储令牌以访问 Facebook API(可选)

如果你希望访问 Facebook API 并在用户授权下执行操作(无论是通过社交登录还是账户绑定),Logto 需要获取特定 API 权限 (Scopes) 并存储令牌。

  1. 按照上方教程添加所需权限 (Scopes)。
  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 URLUser data deletion 字段。
  3. 点击右下角的 Save changes 按钮。
  4. 点击应用顶部栏的 Live 开关按钮。

使用 Facebook 连接器

创建并连接 Facebook 连接器后,你可以将其集成到终端用户流程中。根据你的需求选择相应的选项:

启用“使用 Facebook 登录”

  1. 在 Logto 控制台,前往 登录体验 > 注册与登录
  2. 社交登录 部分添加 Facebook 连接器,让用户可以通过 Facebook 认证 (Authentication)

了解更多关于社交登录体验

使用 Account API 在你的应用中构建自定义账户中心,让已登录用户可以关联或解绑他们的 Facebook 账户。参见 Account API 教程

提示:

你可以仅为账户关联和 API 访问启用 Facebook 连接器,而无需为社交登录启用。

访问 Facebook API 并执行操作

你的应用可以从 Secret Vault 获取存储的 Facebook 访问令牌 (Access token),调用 Facebook API 并自动化后端任务(例如发布内容或管理帖子)。请参考相关指南,了解如何获取存储的令牌以访问 API。

管理用户的 Facebook 身份

用户关联 Facebook 账户后,管理员可以在 Logto 控制台管理该连接:

  1. 前往 用户管理 并打开该用户的资料页。
  2. 社交连接 下找到 Facebook 项,点击 管理
  3. 在此页面,管理员可以管理用户的 Facebook 连接,查看所有从 Facebook 账户授权并同步的资料信息,以及检查访问令牌 (Access token) 状态。
备注:

Facebook 的访问令牌 (Access token) 响应不包含具体的权限 (Scope) 信息,因此 Logto 无法直接显示用户授权的权限列表。但只要用户在授权 (Authorization) 时同意了所请求的权限 (Scopes),你的应用在访问 Facebook API 时就会拥有相应的权限。建议在 Facebook 开发者控制台和 Logto 中准确配置所需的权限 (Scopes),以确保你的应用拥有必要的访问权限。

参考资料

Facebook for Developers - 文档 Facebook 登录文档