0

所以,我使用 Amplify 和 ionic + angular 并遵循以下链接和子链接,

https://aws-amplify.github.io/docs/js/tutorials/building-ionic-4-apps/

https://aws-amplify.github.io/docs/cli-toolchain/quickstart#administrative-actions

现在,我要在我的应用程序中创建一个管理面板,通过它我可以创建为登录过程启用 MFA 的用户(就像通过 aws-cognito-console 完成的那样)。因此,在我的表单中,我提供了电子邮件和电话号码作为必填字段,并且我计划使用 javascript 创建一个自动生成的密码。

正如我从文档中了解到的那样,这可以通过 AdminQueries API 实现,并且在使用 初始化我的项目时amplify cli,我进行了所需的配置。结果,我确实在放大后端文件夹中准备好了样板代码,如下面的屏幕所示,

检查突出显示的黄色区域

不幸的是,样板代码没有实现 AdminCreateUser 方法,即

https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CognitoIdentityServiceProvider.html#adminCreateUser-property

因此,我自己在 中创建了这个方法,cognitoActions.js并且在 中实现了相同的路由app.js,做了一些CORS设置,最后做了一个amplify push

但是当我尝试从 amplify-angular 方法访问此 api 方法时,它给了我以下错误(我已将错误粘贴在屏幕截图下方)

在此处输入图像描述

这就是我的请求、响应标头中的所有内容,

在此处输入图像描述 在此处输入图像描述

{"message":"Network Error","name":"Error","stack":"Error: Network Error\n at createError (http://localhost:8100/vendor.js:263903:15)\n at XMLHttpRequest.handleError [as __zone_symbol__ON_PROPERTYerror] (http://localhost:8100/vendor.js:263394:14)\n at XMLHttpRequest.wrapFn (http://localhost:8100/polyfills.js:4541:39)\n at ZoneDelegate.invokeTask (http://localhost:8100/polyfills.js:3741:31)\n at Object.onInvokeTask (http://localhost:8100/vendor.js:70625:33)\n at ZoneDelegate.invokeTask (http://localhost:8100/polyfills.js:3740:60)\n at Zone.runTask (http://localhost:8100/polyfills.js:3518:47)\n at ZoneTask.invokeTask [as invoke] (http://localhost:8100/polyfills.js:3815:34)\n at invokeTask (http://localhost:8100/polyfills.js:4953:14)\n at XMLHttpRequest.globalZoneAwareCallback (http://localhost:8100/polyfills.js:4979:17)","config":{"url":"https://4wdmydkl7e.execute-api.ap-south-1.amazonaws.com/test/addUser","method":"post","data":"{\"user\":{\"firstname\":\"Prateek\",\"lastname\":\"k\",\"email\":\"opensource.prateek@gmail.com\",\"phoneNumber\":\"+918700416661\",\"specialization\":\"instrumentation\",\"role\":\"admin\"}}","headers":{"Accept":"application/json, text/plain, */*","Content-Type":"application/json"},"transformRequest":[null],"transformResponse":[null],"timeout":0,"responseType":"json","xsrfCookieName":"XSRF-TOKEN","xsrfHeaderName":"X-XSRF-TOKEN","maxContentLength":-1,"host":"4wdmydkl7e.execute-api.ap-south-1.amazonaws.com","path":"/test/addUser"}}

----更新1 -----

我在我的 polyfills.js 中添加了以下内容,

(window as any).global = window;
(window as any).process = {
  env: { DEBUG: undefined },
};

这对我的 index.html

<script>
  if (global === undefined) {
    var global = window;
  }
</script>
4

1 回答 1

1

所以我做了一个放大删除,即从我的 angular 2 项目中删除了放大并移动到 nodejs aws sdk,在我的无服务器后端代码以及现有的 lambda 函数中,现在我有更多的 lambdas 来创建、删除和列出用户使用以下管理查询 API,

https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AddCustomAttributes.html

Amplify 的文档仍然有问题,因此,我建议使用上面链接中提到的功能强大的 API / SDK。

于 2020-05-03T06:06:06.903 回答