View a markdown version of this page

将 Facebook 添加为社交身份提供商 - Amazon Cognito
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

将 Facebook 添加为社交身份提供商

注意

上次通过提供商控制台进行验证的时间为 2026 年 10 月 2 日。Facebook 步骤使用 Meta 开发者版控制台,该控制台围绕用例组织应用程序设置。OAuth 重定向设置位于 “用例”、“自定义”、“设置” 下。

要让你的用户使用 Facebook 登录,你可以使用 Facebook 登录用例创建一个 Meta 应用程序,然后将 Facebook 作为身份提供者 (IdP) 添加到你的用户池中。必须先启用托管登录。

创建一个 Meta 应用程序用于 Facebook 登录

创建和配置 Meta 应用程序
  1. 登录开发者版 Meta,选择我的应用程序,然后选择创建应用程序。

  2. 对于用例,请选择身份验证并向使用 Facebook 登录的用户请求数据。完成应用程序的创建。新应用程序在开发模式下启动。

  3. 从 “应用程序设置”,然后选择 “基本”,记录应用程序 ID 和应用程序密钥。将 App Domains 设置为用户池域名主机(<your-prefix>.auth.<region>.amazoncognito.com或auth.example.com),然后添加以您的托管登录登录网址作为网站网址的网站平台。

  4. 前往 “用例”,选择你的 Facebook 登录用例,然后选择 “自定义”。确认public_profile权限(必填)并添加email。

  5. 在 “设置” 用例中,将有效的 OAuth 重定向 URI 设置为用户池/oauth2/idpresponse域的终端节点:

    • 默认 Amazon Cognito 域名:https://<your-prefix>.auth.<region>.amazoncognito.com/oauth2/idpresponse

    • 自定义域:https://auth.example.com/oauth2/idpresponse

将 Facebook 添加到你的用户池中

要将 Facebook 添加为 IdP Amazon Web Services 管理控制台
  1. 在 Amazon Cognito 控制台中,选择您的用户池,然后选择社交和外部提供商,然后选择添加身份提供商,然后选择Facebook。

  2. 输入应用程序 ID 和应用程序密码,然后选择 Facebook API 版本。请选择最新的可用版本,因为每个版本都有停产日期,而且不同版本的范围可能有所不同。

  3. 对于授权范围,请输入public_profile,email,用逗号分隔。

  4. 映射email到email和映射name到name。

  5. 选择添加身份提供商,然后在应用程序客户端上启用 Facebook。

测试 Facebook 登录情况

当应用程序处于开发模式时,添加您自己的 Facebook 帐户作为应用程序角色(管理员、开发者或测试人员)。然后打开您的托管登录页面并选择 “继续使用 Facebook”。

检查点

Facebook 会使用授权码返回您的应用程序,您的用户池中会出现一个name填充email并填充的新联合用户。/oauth2/idpresponse然后将应用程序切换到直播模式并确认非角色账户可以登录。显示 “应用程序未激活” 或 “处于开发模式” 的非角色帐户意味着该应用程序仍处于开发模式或缺少高级访问权限。

Facebook-specific 陷阱

开发模式和应用程序审查

新应用程序处于开发模式,只有应用程序角色用户(管理员、开发人员、测试人员)才能登录。要让公众登录,请将应用程序切换到实时模式,完成企业验证,然后获得高级访问权限email(并增加访问权限public_profile)。 First-time 测试人员经常点击 “应用程序未激活”,因为他们使用非角色帐户进行测试。

没有经过电子邮件验证的索赔

Facebook 不会回复email_verified索赔,因此没有什么可映射的,亚马逊 Cognito 将 Facebook 电子邮件视为未经验证。不要假设来自Facebook的经过验证的电子邮件,并且只能通过深思熟虑的、可信的逻辑而不是自动地通过电子邮件关联账户。

尽量缩小瞄准镜

Sign-in 完成率急剧下降到大约四个权限以上。将请求保留到public_profile和email。亚马逊 Cognito 联合也与 iOS 上的 Facebook Limited 登录不兼容。