Reputation: 1292
I have a typescript project setup with AWS cognito. I have created a test userpool and have successfully been able to implement routes for login, register, confirm-account. Currently, I am working on a forgot-password route. The code for which is below. When I test this code, I get the following error message Contact administrator to reset password.
Is it possible to create this route so that a confirmed user may directly view their password or perhaps even reset their password?
import AmazonCognitoIdentity from 'amazon-cognito-identity-js';
const UserPoolId = ************;
const ClientId = ************;
const region = ************
const config = {region: region }
export const resetPassword = async (req, res) => {
try {
const { username } = req.body;
const poolData = {
UserPoolId: ************,
ClientId: ************,
};
const userPool = new AmazonCognitoIdentity.CognitoUserPool(poolData);
const userData = {
Username: username,
Pool: userPool,
};
const cognitoUser = new AmazonCognitoIdentity.CognitoUser(userData);
cognitoUser.forgotPassword({
onSuccess: (data) => {
console.log(data)
res.status(200).json({ message: "Password Reset"});
},
onFailure: (err) => {
console.log('ERR:', err)
res.status(401).json({ message: "Password Not Reset", error: err.message});
},
})
}
catch (err) {
console.log("FAILED")
console.log("Error"+ err.message)
res.status(500).json({ message: "Password Not Reset", error: err.message});
}
};
The flow that I have in mind is that if this route is selected, the user could either directly reset their password, or they could get a confirmation email with a code to confirm their account and in doing so, they could obtain a new passowrd. Does this flow exist in AWS Cognito User Pools?
Any assistance would be much appreciated!
Upvotes: 0
Views: 172
Reputation: 1292
This implementation ended up being correct. The issue was that messaging was not configured properly in the AWS Cognito UI. For future reference, User Pools -> User Pool -> Messaging -> Email must be edited to allow for emails to be sent with password reset codes.
Upvotes: 0