第 3 步 向用户池添加社交登录(可选)
您可以允许应用程序用户通过社交身份提供商(IdP)(如 Facebook、Google、亚马逊和 Apple)进行登录。无论您的用户是直接登录还是通过第三方登录,所有用户都在用户池中有一个配置文件。如果您不想添加通过社交登录身份提供商进行的登录,请跳过此步骤。
步骤 1:向社交 IdP 注册
在使用 Amazon Cognito 创建社交 IdP 之前,必须向社交 IdP 注册应用程序才能接收客户端 ID 和客户端密钥。
-
创建 Facebook 开发人员账户
。 -
使用 Facebook 凭证登录
。 -
在 My Apps(我的应用程序)菜单上,选择 Create New App(创建新的应用程序)。
-
输入 Facebook 应用程序的名称,然后选择 Create App ID(创建应用程序 ID)。
-
在左侧导航栏上,选择 Settings(设置),然后选择 Basic(基本)。
-
记下 App ID(应用程序 ID)和 App Secret(应用程序密钥)。您将在下一节中使用它们。
-
从页面底部选择 + Add Platform(+ 添加平台)。
-
选择 Website(网站)。
-
在 Website(网站)下,将用于应用程序客户端端点的登录 URL输入到 Site URL(站点 URL)。您的登录 URL 应采用以下格式:
https://
your_user_pool_domain
/login?response_type=code&client_id=your_app_client_id
&redirect_uri=your_callback_url
-
选择 Save changes(保存更改)。
-
为 App Domains(应用程序域)输入用户池域。
https://
your_user_pool_domain
-
选择 Save changes(保存更改)。
-
从导航栏中,选择 Products(产品),然后选择 Facebook Login(Facebook 登录)中的 Set up(设置)。
-
从导航栏中,选择 Facebook Login(Facebook 登录),然后选择 Settings(设置)。
在 Valid OAuth Redirect URIs(有效的 OAuth 重定向 URI)中输入重定向 URL。重定向 URL 将包含具有
/oauth2/idpresponse
端点的用户池域。https://
your_user_pool_domain
/oauth2/idpresponse -
选择 Save changes(保存更改)。
-
创建 Amazon 开发人员账户
。 -
使用 Amazon 凭证登录
。 -
您需要创建一个 Amazon 安全配置文件才能接收 Amazon 客户端 ID 和客户端密钥。
从页面顶部的导航栏中选择 Apps and Services(应用程序和服务),然后选择 Login with Amazon。
-
选择 Create a Security Profile(创建安全配置文件)。
-
输入 Security Profile Name(安全配置文件名称)、Security Profile Description(安全配置文件描述)和 Consent Privacy Notice URL(同意隐私声明 URL)。
-
选择 Save(保存)。
-
选择 Client ID(客户端 ID)和 Client Secret(客户端密钥)以显示客户端 ID 和密钥。您将在下一节中使用它们。
-
将鼠标悬停在齿轮图标上并选择 Web Settings(Web 设置),然后选择 Edit(编辑)。
-
将用户池域输入到 Allowed Origins(允许的源)中。
https://
<your-user-pool-domain>
-
将具有
/oauth2/idpresponse
端点的用户池域输入到 Allowed Return URLs(允许的返回 URL)中。https://
<your-user-pool-domain>
/oauth2/idpresponse -
选择 Save(保存)。
-
创建 Google 开发人员账户
。 -
使用 Google 凭证登录
。 -
选择 CONFIGURE A PROJECT(配置项目)。
-
输入项目名称,然后选择 NEXT(下一步)。
-
输入产品名称,然后选择 NEXT(下一步)。
-
从 Where are you calling from?(从何处调用?)下拉列表选择 Web browser(Web 浏览器)。
-
在 Authorized JavaScript origins(授权的 JavaScript 源)字段中输入用户池域。
https://
<your-user-pool-domain>
-
选择 CREATE(创建)。此步骤中将不使用 Client ID(客户端 ID)和 Client Secret(客户端密钥)。
-
选择 DONE(完成)。
-
登录
Google 控制台。 -
在左侧导航栏上,选择 Credentials(凭证)。
-
通过从 Create credentials(创建凭证)下拉列表中选择 OAuth client ID(OAuth 客户端 ID)来创建 OAuth 2.0 凭证。
-
选择 Web application(Web 应用程序)。
-
在 Authorized JavaScript origins(授权的 JavaScript 源)字段中输入用户池域。
https://
<your-user-pool-domain>
-
将具有
/oauth2/idpresponse
端点的用户池域输入到 Authorized Redirect URIs(授权的重定向 URI)字段中。https://
<your-user-pool-domain>
/oauth2/idpresponse -
选择 Create(创建)两次。
-
记下 OAuth client ID(OAuth 客户端 ID)和 client secret(客户端密钥)。您需要在下一节中使用它们。
-
选择 OK(确定)。
-
创建 Apple 开发人员账户
。 -
使用 Apple 凭证登录
。 -
在左侧导航栏上,选择 Certificates, IDs & Profiles (证书、ID 和配置文件)。
-
在左侧导航栏上,选择 Identifiers (标识符)。
-
在 Identifiers (标识符) 页面上,选择 + 图标。
-
在 Register a New Identifier (注册新标识符) 页面上,选择 App IDs (应用程序 ID),然后选择 Continue (继续)。
-
在 Register an App ID(注册应用程序 ID)页面上,执行以下操作:
-
在 Description(描述)下方,键入描述。
-
在 App ID Prefix(应用程序 ID 前缀)下,键入标识符。记下 App ID Prefix(应用程序 ID 前缀)下的值。在步骤 2:将社交 IdP 添加到用户池中选择 Apple 作为身份提供商后,您将使用此值。
-
在 Capabilities(功能)下,选择 Sign In with Apple,然后选择 Edit(编辑)。
-
在 Sign in with Apple: App ID Configuration(Sign in with Apple:应用程序 ID 配置)页面上,为您的应用程序选择适当的设置,然后选择 Save(保存)。
-
选择 Continue(继续)。
-
-
在 Confirm your App ID(确认您的应用程序 ID)页面上,选择 Register(注册)。
-
在 Identifiers(标识符)页面上,将鼠标悬停在页面右侧的 App IDs(应用程序 ID)上,选择 Services IDs(服务 ID),然后选择 + 图标。
-
在 Register a New Identifier (注册新标识符) 页面上,选择 Services IDs (服务 ID),然后选择 Continue (继续)。
-
在 Register an Services ID(注册服务 ID)页面上,执行以下操作:
-
在 Description(描述)下方,键入描述。
-
在 Identifier(标识符)下方,键入标识符。记下此服务 ID,因为在步骤 2:将社交 IdP 添加到用户池中选择 Apple 作为身份提供商后需要此值。
-
选择 Sign In with Apple,然后选择 Configure (配置)。
-
在 Web Authentication Configuration(Web 身份验证配置)页面上,选择 Primary App ID(主应用程序 ID)。在 Web Domain(Web 域)下,键入用户池域。在 Return URLs(返回 URL)下,键入用户池域并包括
/oauth2/idpresponse
端点。例如:https://
<your-user-pool-domain>
/oauth2/idpresponse -
选择 Add (添加),然后选择 Save (保存)。您不需要验证域。
-
选择 Continue (继续),然后选择 Register (注册)。
-
-
在左侧导航栏上,选择 Keys (密钥)。
-
在 Keys(密钥)页面上,选择 + 图标。
-
在 Register a New Key(注册新密钥)页面上,执行以下操作:
-
在 Key Name(密钥名称)下,输入密钥名称。
-
选择 Sign In with Apple,然后选择 Configure(配置)。
-
在 Configure Key (配置密钥) 页面上,选择 Primary App ID (主应用程序 ID),然后选择 Save (保存)。
-
选择 Continue(继续),然后选择 Register(注册)。
-
-
在 Download Your Key(下载您的密钥)页面上,选择 Download(下载)以下载私有密钥并记下显示的 Key ID(密钥 ID),然后选择 Done(完成)。在步骤 2:将社交 IdP 添加到用户池中选择 Apple 作为身份提供商后,您将需要此私有密钥和在此页面上显示的 Key ID(密钥 ID)值。
步骤 2:将社交 IdP 添加到用户池
在本节中,您使用上一节中的客户端 ID 和客户端密钥在用户池中配置社交 IdP。
步骤 3:测试社交 IdP 配置
可以通过使用前两节中的元素来创建登录 URL。使用此 URL 测试社交 IdP 配置。
https://
<your_user_pool_domain>
/login?response_type=code&client_id=<your_client_id>
&redirect_uri=https://www.example.com
您可以在用户池 Domain name(域名)控制台页上找到您的域。client_id 位于 App client settings(应用程序客户端设置)页上。对于 redirect_uri 参数,使用您的回调 URL。这是页面的 URL,在页面中,您的用户在身份验证成功后将被重定向。
Amazon Cognito 会取消未在 5 分钟内完成的身份验证请求,并将用户重定向到托管 UI。页面随即显示 Something went wrong
错误消息。
下一步
第 4 步 将使用 SAML 身份提供商的登录添加到用户池(可选)