步骤 2. 添加应用程序以启用托管 Web UI - Amazon Cognito
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

步骤 2. 添加应用程序以启用托管 Web UI

在创建用户池后,您可以创建一个应用程序,以便使用内置网页来对用户进行注册和登录。

在用户池中创建应用程序

  1. 转至Amazon Cognito 控制台。系统可能会提示您输入 Amazon 凭证。

  2. 选择 Manage User Pools (管理用户池)

  3. 从列表中选择现有用户池,或创建用户池

  4. 在页面左侧的导航栏上,选择常规设置下的应用程序客户端

  5. 选择 Add an app client

  6. 为应用程序指定名称。

  7. 清除选项生成客户端密钥,因为使用客户端 JavaScript 在 URL 中发送它是不安全的。客户端密钥由具有以下特点的应用程序使用:拥有可保护客户端密钥的服务器端组件。

  8. 选择 Create app client

  9. 记下应用程序客户端 ID

  10. 选择返回池详细信息

  11. 从控制台页面左侧的导航栏中选择应用程序客户端设置

  12. 选择 Cognito 用户池作为其中一个启用身份提供商

    注意

    要使用外部身份提供商 (IIdPs)(如 Facebook、Amazon、Google 和 Apple)以及通过 OpenID Connect (OIDC) 或 SAML IdP 进行登录,请首先按下文所述的方式配置它们,然后返回到应用程序客户端设置页面以启用它们。

  13. 输入 Amazon Cognito 授权服务器在用户通过身份验证之后进行调用的回调 URL。对于 Web 应用程序,该 URL 应以 https:// 开头,如 https://www.example.com。

    对于 iOS 或 Android 应用程序,您可以使用类似 myapp:// 的回调 URL。

  14. 输入注销 URL。

  15. Select授权代码返回随后与用户池令牌交换的授权代码。由于令牌绝不会直接向最终用户公开,因此它们不太可能被泄露。但是,后端需要自定义应用程序以将授权代码换成用户池令牌。出于安全原因,我们建议您将授权代码授予流程与用于代码交换 (PKCE) 的证明密钥,适用于移动应用程序。

  16. UNDER允许的 OAuth 流程,选择隐式授予使用 Amazon Cognito 将用户池 JSON Web Token (JWT) 返回给您。当没有可用于将授权代码换成令牌的后端时,您可以使用此流程。它对于调试令牌也很有帮助。

    注意

    您可以同时启用授权代码授予隐式代码授予,然后按需使用每个授予。

  17. 除非您希望明确地排除一个允许的 OAuth 范围,否则请选中所有“允许的 OAuth 范围”的复选框。

    注意

    只有在您的应用程序需要代表自己而不是代表用户请求访问令牌时才选择 Client credentials

  18. 选择保存更改

  19. 域名页面上,键入可用的域前缀。

  20. 记下完整的域地址。

  21. 选择保存更改

查看您的登录页面

您可以使用以下 URL 查看托管 UI 登录网页。记下 response_type。在本例中为,响应类型 = 代码获取授权代码授予。

https://your_domain/login?response_type=code&client_id=your_app_client_id&redirect_uri=your_callback_url

您可以使用针对隐式代码授予的以下 URL 查看托管 UI 登录网页,其中,response_type=token。成功登录后,Amazon Cognito 会将用户池令牌返回到您的 Web 浏览器的地址栏。

https://your_domain/login?response_type=token&client_id=your_app_client_id&redirect_uri=your_callback_url

您可以在响应中的 #idtoken= 参数后面找到 JSON Web Token (JWT) 身份令牌。

下面是来自隐式授予请求的示例响应。您的身份令牌字符串长得多。

https://www.example.com/#id_token=123456789tokens123456789&expires_in=3600&token_type=Bearer

您可以使用Amazon Lambda,请参阅解码并验证 Amazon Cognito JWT 令牌上AmazonGitHub 网站。

Amazon Cognito 用户池令牌是使用 RS256 算法对其进行签名的。

您可能需要先等待一分钟以刷新浏览器,之后才会显示您在控制台中所做的更改。

您的域将显示在域名页面上。您的应用程序客户端 ID 和回调 URL 显示在常规设置页.

下一步

步驟 3. 向用户池添加社交登录 (可选)