繁体   English   中英

在node.js中使用Cognito用户池创建用户

[英]Creating a User With cognito User Pool in node.js

我正在尝试使用cognito用户池js sdk在cognito用户池中创建用户。 通过遵循本教程,我可以在前端成功完成此操作 但是,我想在带有节点的后端中执行此操作。 我正在尝试包括这样的SDK

const AWSCognito = require('./amazon-cognito-identity.min.js');
const `AWSCognitoSDK` = require('./aws-cognito-sdk.min.js');

但是我正在使用的东西的节点已定义。 例如, AWSCognito.config.region = 'us-east-1'; 不起作用,因为AWSCognito似乎没有属性config.region。 我使用AWSCognitoSDK但是当我将其记录到控制台时,它作为一个空对象出现,因此我并不是真的希望它能正常工作。 我尝试在以下答案中使用该解决方案,但无法使它运行AWS Cognito未经身份验证的登录错误(未定义窗口)[JS]

如果有人可以帮助我包括SDK和使这些行在Node中起作用,我将不胜感激

var poolData = {
    UserPoolId : '...', // your user pool id here
    ClientId : '...' // your app client id here
};
var userPool = 
new AWSCognito.CognitoIdentityServiceProvider.CognitoUserPool(poolData);

注意:我也尝试通过npm安装amazon-cognito-identity-js,但是遇到了同样的问题

-更新-

我根据Patrick的回答进行了npm安装。 这是我得到的错误

    let userPool = new AWSCognito.CognitoIdentityServiceProvider.CognitoUserPool(poolData);
                                                             ^

TypeError: Cannot read property 'CognitoUserPool' of undefined
    at Object.<anonymous> (/Users/bbhakhrani/projects/nodekb/app.js:19:62)
    at Module._compile (module.js:660:30)
    at Object.Module._extensions..js (module.js:671:10)
    at Module.load (module.js:573:32)
    at tryModuleLoad (module.js:513:12)
    at Function.Module._load (module.js:505:3)
    at Function.Module.runMain (module.js:701:10)
    at startup (bootstrap_node.js:190:16)
    at bootstrap_node.js:662:3

当我console.log这个AWSCognito对象时, const AWSCognito = require('amazon-cognito-identity-js'); ,这是显示的属性

    { __esModule: true,
  AuthenticationDetails: [Getter],
  AuthenticationHelper: [Getter],
  CognitoAccessToken: [Getter],
  CognitoIdToken: [Getter],
  CognitoRefreshToken: [Getter],
  CognitoUser: [Getter],
  CognitoUserAttribute: [Getter],
  CognitoUserPool: [Getter],
  CognitoUserSession: [Getter],
  CookieStorage: [Getter],
  DateHelper: [Getter] }

通过在项目的根目录中执行以下命令,使用Node.js包管理器(npm)安装amazon-cognito-identity-js模块:

npm install --save amazon-cognito-identity-js

这会将模块放在名为node_modules的特殊目录中。

然后,您可以在代码中使用require而不指定路径,仅npm软件包名称就足够了,Node.js会自动解析路径:

const AWSCognito = require('amazon-cognito-identity-js');

我能够使那条线工作。 我只是将其更改为new AWSCognito.CognitoUserPool(poolData)而不是new AWSCognito.CognitoIdentityServiceProvider.CognitoUserPool(poolData) ,并且它可以正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM