【问题标题】:How to call adminCreateUser from React front-end?如何从 React 前端调用 adminCreateUser?
【发布时间】:2019-07-03 00:22:41
【问题描述】:

希望我的“主管”用户能够通过自定义 React 应用程序而不是通过 Cognito 控制台创建“员工”用户(无法创建自己的用户)。 AWS Cognito Identity SDK 的AdminCreateUser action 是通过AWS.CognitoIdentityServiceProvider 提供的,这似乎比Node back-endAWS Management Console interface 提供的更多。并且有大量关于通过 AdminCreateUser API 对拥有 already been created 的用户进行身份验证的文档。但是,尝试

import { CognitoIdentityServiceProvider } from 'amazon-cognito-identity-js'; 

而且 AFAIK(据我所知),React 中没有提供该操作。

【问题讨论】:

  • 问题是什么?您知道如何调用 API。那么问题是“如何将 adminCreateUsers 的访问权限限制为特定的用户组(主管)?如果这是一个问题,那不是 Cognito 问题。它涉及您如何验证用户、将它们分配给组并在之后检查授权登录。API ListGroups、ListUsersInGroup 可能会在这里提供帮助
  • @SébastienStormacq 我的主要问题在标题中。 没有似乎是从 React 访问 API 的直接方法,所以我仍在弄清楚我需要什么堆栈(如果我需要比 create-react 更多的东西-app 提供)。我是否需要在云上(可能与 Amplify 一起使用) Node.js 服务器上运行我的 React 应用程序?或者我可以以某种方式从 React 调用 Node.js 脚本吗?
  • 我还注意到“AdminCreateUser 需要开发人员凭据”。这是否意味着我客户的主管级别用户应该具有开发人员权限?这似乎太过分了……但这是他们以编程方式调用该操作的唯一方法吗?
  • 所以,如果问题是如何从 React 调用这些 API,答案是在浏览器 aws.amazon.com/sdk-for-browser 中使用 AWS SDK for Javascript。 React 没有特定的 SDK。 Amplify 将通过为 Cognito 用户池和存储提供一些更高级别的 API 来帮助您并简化 React 集成,但不会像您想要使用的那样公开所有 API。
  • 开发者凭证表示 AWS 用户凭证,即具有允许他们调用该 API 的权限的角色

标签: reactjs amazon-web-services amazon-cognito


【解决方案1】:

我正在考虑使用一种 hacky 方法来定义 2 个特定的 Cognito 用户池 - 用户组 SupervisorEmployee。只有属于 Supervisor 组的用户才能访问注册屏幕(使用 protective React Routing),我可以在其中使用文档齐全的 CognitoUserPool 子 SDK 创建 Employee 用户。

【讨论】:

  • 我没有将此标记为正确,因为我确信此过程可以改进。
猜你喜欢
  • 1970-01-01
  • 2017-05-29
  • 1970-01-01
  • 1970-01-01
  • 2022-10-16
  • 2023-04-03
  • 1970-01-01
  • 2021-03-02
  • 2022-01-21
相关资源
最近更新 更多