Может ли AWS Cognito adminCreateUser отправить временный пароль?
Документация Amazon Cognito adminCreateUser для TemporaryPassword гласит:
Этот параметр не обязателен. Если вы не укажете значение, Amazon Cognito создаст его для вас.
Как пользователь получает это? Сначала я думал, что это будет отправлено пользователю по электронной почте, но, похоже, это не так. Тогда я подумал, может быть, это вернется в ответ. Нету.
Вот код, который я вызываю в своей функции JS Lambda:
adminCreateUser(
{
"UserPoolId": "us-east-1_XXXXXXXX",
"Username": "roger__mailinator.com",
"DesiredDeliveryMediums": [
"EMAIL"
],
"ForceAliasCreation": false,
"MessageAction": "SUPPRESS",
"UserAttributes": [
{
"Name": "given_name",
"Value": "Rodger"
},
{
"Name": "family_name",
"Value": "Ribbit"
},
{
"Name": "name",
"Value": "Rodger Ribbit"
},
{
"Name": "email",
"Value": "roger@mailinator.com"
},
{
"Name": "custom:title",
"Value": "Animation Designer"
},
{
"Name": "custom:company",
"Value": "76"
}
]
}, function(error, data) {
if (error) {
console.log("Error adding user to cognito: " + error, error.stack);
//...
} else {
console.log("Received back from cognito: " + JSON.stringify(data));
//...
}
});
и вот ответ, который я получаю:
Received back from cognito:
{
"User": {
"Username": "roger__mailinator.com",
"Attributes": [
{
"Name": "custom:title",
"Value": "Animation Designer"
},
{
"Name": "sub",
"Value": "1cd612a0-0da0-4e7b-84c7-30570fab80a9"
},
{
"Name": "name",
"Value": "Rodger Ribbit"
},
{
"Name": "given_name",
"Value": "Rodger"
},
{
"Name": "family_name",
"Value": "Ribbit"
},
{
"Name": "email",
"Value": "roger@mailinator.com"
},
{
"Name": "custom:company",
"Value": "76"
}
],
"UserCreateDate": "2017-03-30T18:31:34.283Z",
"UserLastModifiedDate": "2017-03-30T18:31:34.283Z",
"Enabled": true,
"UserStatus": "FORCE_CHANGE_PASSWORD"
}
}
Куда идет пароль? Мы должны угадать это?:-)
2 ответа
Я думаю, это потому, что вы передаете "MessageAction": "SUPPRESS". Это будет подавлять отправку электронной почты.
Временный пароль отправляется пользователю по электронной почте, и он должен сбросить его при первом входе в систему.
Ответ заключается в том, что электронная почта пользователя должна быть подтверждена до того, как он ее получит. Таким образом, вам нужно изменить атрибут пользователя на электронную почту, чтобы проверить. Смотрите: /questions/42983021/aws-cognito-polzovatel-zastryal-v-podtverzhdeno-i-emailverified-false/42983025#42983025