[英]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.