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。
- 访问 AWS 管理控制台 https://aws.amazon.com/console/
- 如果需要,在右上角 Support 下拉菜单旁边选择你的 Region(区域)
- 点击左上角的 Services(服务)下拉菜单
- 在
Security, Identity & Compliance(安全、身份与合规)部分点击 Cognito - 然后点击 Manage User Pools(管理用户池)按钮
- 如有需要,可创建或使用已有的用户池。你可以在此处找到创建用户池的教程 https://docs.aws.amazon.com/cognito/latest/developerguide/tutorial-create-user-pool.html
- 进入 Cognito 用户池的 App clients(应用客户端)部分,创建一个名为
Strapi Auth的新客户端,设置所有参数后点击 Create app client(创建应用客户端) - 你现在应该拥有了一个 App client id(应用客户端 ID),点击 Show Details(显示详情)按钮即可查看 App client secret(应用客户端密钥)。请将这两个值 App client id 和 App client secret 复制保存,以便稍后在 Strapi 中配置 AWS Cognito 提供方时使用。
- 进入 App integration section(应用集成部分)并点击 App client settings(应用客户端设置)
- 找到你名为
Strapi Auth的应用客户端,并在新创建的应用客户端的 Enabled Identity Providers(已启用的身份提供者)部分中,通过勾选来启用 Cognito User Pool - 在回调 URL 和退出登录 URL 中填入
http://localhost:1337/api/connect/cognito/callback,或填入 Strapi 中 AWS Cognito 提供方提供的对应值 - 在 Oauth 2.0 部分,为 Allowed OAuth Flows(允许的 OAuth 流程)选择
Authorization code grant和Implicit grant,并为 Allowed OAuth Scopes(允许的 OAuth 范围)选择email、openid和profile - 现在你可以点击 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 配置
- 访问 User & Permissions 提供方设置页面,地址为 http://localhost:1337/admin/settings/users-permissions/providers
- 点击 Cognito 提供方
- 填写以下信息(替换为你自己的客户端 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
- Enable:
你的配置已完成。启动后端和 react 登录示例应用,访问 http://localhost:3000 并尝试连接到你所配置的提供方。