本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将 Facebook 添加为社交身份提供商
注意
上次通过提供商控制台进行验证的时间为 2026 年 10 月 2 日。Facebook 步骤使用 Meta 开发者
要让你的用户使用 Facebook 登录,你可以使用 Facebook 登录用例创建一个 Meta 应用程序,然后将 Facebook 作为身份提供者 (IdP) 添加到你的用户池中。必须先启用托管登录。
创建一个 Meta 应用程序用于 Facebook 登录
创建和配置 Meta 应用程序
-
登录开发者版 Meta
,选择我的应用程序,然后选择创建应用程序。 -
对于用例,请选择身份验证并向使用 Facebook 登录的用户请求数据。完成应用程序的创建。新应用程序在开发模式下启动。
-
从 “应用程序设置”,然后选择 “基本”,记录应用程序 ID 和应用程序密钥。将 App Domains 设置为用户池域名主机(
<your-prefix>.auth.<region>.amazoncognito.com或auth.example.com),然后添加以您的托管登录登录网址作为网站网址的网站平台。 -
前往 “用例”,选择你的 Facebook 登录用例,然后选择 “自定义”。确认
public_profile权限(必填)并添加email。 -
在 “设置” 用例中,将有效的 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 管理控制台
-
在 Amazon Cognito 控制台
中,选择您的用户池,然后选择社交和外部提供商,然后选择添加身份提供商,然后选择Facebook。 -
输入应用程序 ID 和应用程序密码,然后选择 Facebook API 版本。请选择最新的可用版本,因为每个版本都有停产日期,而且不同版本的范围可能有所不同。
-
对于授权范围,请输入
public_profile,email,用逗号分隔。 -
映射
email到email和映射name到name。 -
选择添加身份提供商,然后在应用程序客户端上启用 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 登录不兼容。