【发布时间】:2021-11-22 00:00:35
【问题描述】:
userPool.signUp(
userData.email,
userData.password,
attributeList,
[],
async (err, result) => {
if (err) {
failure(new HttpException(500, err.message));
}
let myCredentials = new AWS.CognitoIdentityCredentials({
IdentityPoolId: process.env.USER_POOL_ID!,
});
new AWS.Config({
credentials: myCredentials,
region: process.env.AWS_REGION,
});
let cognitoIdentityServiceProvider = new AWS.CognitoIdentityServiceProvider();
cognitoIdentityServiceProvider.adminConfirmSignUp(
{
UserPoolId: process.env.USER_POOL_ID!,
Username: userData.email,
},
function (err, _data) {
if (err) {
failure(err);
}
cognitoIdentityServiceProvider.adminUpdateUserAttributes(
{
UserPoolId: process.env.USER_POOL_ID!,
Username: userData.email,
UserAttributes: [
{
Name: 'email_verified',
Value: 'true',
},
],
},
() => {
console.log('done');
}
);
}
);
if (result) {
const cognitoUser = result.user;
success({ user: cognitoUser, sub: result.userSub });
} else {
failure(
new HttpException(
500,
'Authentication server error, please try again later'
)
);
}
}
);
这是我注册用户并在 cognito 上自动验证该用户的代码。 问题是我有 2 组不同的用户角色,一个用户我正在自动确认,但另一个我希望他们使用 cognito 发送的代码手动确认。
现在对于已完成自动确认的一类用户,电子邮件和确认用户工作正常,但有一点需要注意。 验证码正在发送,即使它是由 admincognito 自动验证的。
如何在这组特定的代码上禁用此功能,以便其他用户角色可以确认通过电子邮件发送的代码
【问题讨论】:
标签: node.js amazon-web-services amazon-cognito