AWS Cognito 提供方在 Users & Permissions 中的设置

页面摘要: AWS Cognito 提供方可为 Users & Permissions 设置 OAuth 2.0 身份验证,方法是在 AWS 中配置用户池,并将客户端凭据和域名添加到 Strapi 的提供方设置中。

本页介绍如何为 Users & Permissions 功能 设置 AWS Cognito 提供方。

WARNING

AWS Cognito 配置

NOTE

AWS Cognito 接受 localhost URL。

无需使用 ngrok。

  1. 访问 AWS 管理控制台 https://aws.amazon.com/console/
  2. 如果需要,在右上角 Support 下拉菜单旁边选择你的 Region(区域)
  3. 点击左上角的 Services(服务)下拉菜单
  4. 在 Security, Identity & Compliance(安全、身份与合规)部分点击 Cognito
  5. 然后点击 Manage User Pools(管理用户池)按钮
  6. 如有需要,可创建或使用已有的用户池。你可以在此处找到创建用户池的教程 https://docs.aws.amazon.com/cognito/latest/developerguide/tutorial-create-user-pool.html
  7. 进入 Cognito 用户池的 App clients(应用客户端)部分,创建一个名为 Strapi Auth 的新客户端,设置所有参数后点击 Create app client(创建应用客户端)
  8. 你现在应该拥有了一个 App client id(应用客户端 ID),点击 Show Details(显示详情)按钮即可查看 App client secret(应用客户端密钥)。请将这两个值 App client id 和 App client secret 复制保存,以便稍后在 Strapi 中配置 AWS Cognito 提供方时使用。
  9. 进入 App integration section(应用集成部分)并点击 App client settings(应用客户端设置)
  10. 找到你名为 Strapi Auth 的应用客户端,并在新创建的应用客户端的 Enabled Identity Providers(已启用的身份提供者)部分中,通过勾选来启用 Cognito User Pool
  11. 在回调 URL 和退出登录 URL 中填入 http://localhost:1337/api/connect/cognito/callback,或填入 Strapi 中 AWS Cognito 提供方提供的对应值
  12. 在 Oauth 2.0 部分,为 Allowed OAuth Flows(允许的 OAuth 流程)选择 Authorization code grant 和 Implicit grant,并为 Allowed OAuth Scopes(允许的 OAuth 范围)选择 email、openid 和 profile
  13. 现在你可以点击 Save changes(保存更改);如果你已经配置了域名,那么应该能看到一个指向 Launch Hosted UI(启动托管 UI)的链接。你可以点击它来显示 AWS Cognito 登录页面。如果你尚未配置域名,请使用页面右下角的 Choose domain name(选择域名)链接来配置域名。在该页面中,你会看到一个 Amazon Cognito Domain(Amazon Cognito 域)部分,其中已设置了 Domain prefix(域前缀)。输入一个用于 Amazon Cognito 托管的注册和登录页面的域前缀,该域前缀与 .auth.YOUR_REGION.amazoncognito.com 组合后,将作为你稍后 Strapi 配置中的 Host URI (Subdomain)(主机 URI(子域名))值。

Strapi 配置

  1. 访问 User & Permissions 提供方设置页面,地址为 http://localhost:1337/admin/settings/users-permissions/providers
  2. 点击 Cognito 提供方
  3. 填写以下信息(替换为你自己的客户端 ID 和密钥):
    • Enable:ON
    • Client ID:填入 App client id(5bd7a786qdupjmi0b3s10vegdt)
    • Client Secret:填入 App client secret(19c5c78dsfsdfssfsdfhpdb4nkpb145vesdfdsfsffgh7vwd6g45jlipbpb)
    • Host URI (Subdomain):填入你之前复制的 URL 值(myapp67b50345-67b50b17-local.auth.eu-central-1.amazoncognito.com)
    • 指向你前端应用的重定向 URL:如果你使用的是 strapi react-login https://github.com/strapi/strapi-examples/tree/master/examples/login-react/,请使用 http://localhost:3000/connect/cognito/redirect;如果你还没有前端应用来测试你的 Cognito 配置,则可以使用以下 URL:http://localhost:1337/api/auth/cognito/callback

你的配置已完成。启动后端和 react 登录示例应用,访问 http://localhost:3000 并尝试连接到你所配置的提供方。