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" } } 

密码在哪里? 我们应该猜测吗? 🙂

我想这是因为你正在通过“MessageAction”:“SUPPRESS”。 这将抑制电子邮件的发送。

临时密码通过电子邮件发送给用户,他需要在首次login时重置密码。

答案是,用户电子邮件需要validation之后才会收到。 所以你需要修改电子邮件的用户属性来validation。 请参阅: https : //stackoverflow.com/a/43033722/491553