[英]Aws cognito create user by admin nodejs
我正在使用 javascript sdk amazon-cognito-identity-js 並且我正在嘗試在 nodejs 中創建一個 cognito 用戶,但下面是我的代碼錯誤:-
var AWS = require("aws-sdk")
var params = {
UserPoolId: "id",
Username: req.body.username,
DesiredDeliveryMediums: ["EMAIL"],
ForceAliasCreation: false,
TemporaryPassword: req.body.password,
UserAttributes: [
{ Name: "name", Value: req.body.name },
{ Name: "email", Value: req.body.user_email}
],
};
let client = new AWS.CognitoIdentityServiceProvider();
client.adminCreateUser(params, function(err, data) {
if (err) {
console.log("EE",err);
// reject(err);
} else {
console.log("DDD",data);
//resolve(data);
}
})
但是我在使用代碼時遇到了這個錯誤:-
EE { UnknownError: Not Found at Request.extractError (/var/task/node_modules/aws-sdk/lib/protocol/json.js:48:27) }
請幫我解決這個問題。
這是解決方案。
先決條件 如果您想在 aws-sdk(手動流程)中使用憑證 1. 創建 IAM 用戶並為您的用戶分配 Cognito 角色。 2. 為該用戶生成訪問密鑰和秘密密鑰。 3. 在 aws-sdk 中使用該訪問密鑰和秘密密鑰。
像這樣,
let AWS = require("aws-sdk");
AWS.config.update({
accessKeyId: "YOURKEY",
secretAccessKey: "YOURSECRET",
region: "YOURREGION"
});
創建CognitoIdentityServiceProvider類的對象
const COGNITO_CLIENT = new AWS.CognitoIdentityServiceProvider({
apiVersion: "2016-04-19",
region: "us-east-1"
});
var poolData = {
UserPoolId: "XXXXXXXXX",
Username: "kurulezomi@themailpro.net",
DesiredDeliveryMediums: ["EMAIL"],
TemporaryPassword: "Abc@321",
UserAttributes: [
{
Name: "email",
Value: "kuri@themailpro.net"
},
{
Name: "email_verified",
Value: "true"
}
]
};
COGNITO_CLIENT.adminCreateUser(poolData, (error, data) => {
console.log(error);
console.log(data);
callback(null, {
statusCode: 200,
body: JSON.stringify(data)
});
});
或者,您可以直接將 IAM 角色分配給您的 EC2 實例,在這種情況下,您無需在AWS.config部分中設置憑證。
關於這個 NODE.JS 示例:此示例適用於 JavaScript 版本 2 (v2) 的 AWS SDK。 目的:admin-create-user.js 演示管理員如何使用 Amazon Cognito 創建用戶。
輸入:
亞馬遜配置
const AWS = require("aws-sdk");
AWS.config.update({
accessKeyId : "Your accessKeyId ",
secretAccessKey: "secretAccessKey",
});
創建 COGNITO_CLIENT
const COGNITO_CLIENT = new AWS.CognitoIdentityServiceProvider({
apiVersion: "2022-10-03",
region: "us-east-1",
});
創建用戶
const createUser = async (user) => {
try {
const { emailId, password } = user;
const cognitoParams = {
UserPoolId: userPoolId,
Username: emailId,
UserAttributes: [
{
Name: "email",
Value: emailId,
},
{
Name: "email_verified",
Value: "true",
},
],
TemporaryPassword: password || "Password@123456789",
};
console.log(cognitoParams.TemporaryPassword);
let response = await COGNITO_CLIENT.adminCreateUser(
cognitoParams
).promise();
console.log(JSON.stringify(response));
return "user created";
} catch (err) {
throw Error(err);
}
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.