Saltar al contenido

¿Cómo permitir que mi usuario restablezca su contraseña en los grupos de usuarios de Cognito?

Solución:

Los documentos de AWS son terribles sobre este tema (Cognito). Básicamente necesitas configurar cognitoUser, luego llame forgotPassword

export function resetPassword(username) {
    // const poolData = { UserPoolId: xxxx, ClientId: xxxx };
    // userPool is const userPool = new AWSCognito.CognitoUserPool(poolData);

    // setup cognitoUser first
    cognitoUser = new AWSCognito.CognitoUser({
        Username: username,
        Pool: userPool
    });

    // call forgotPassword on cognitoUser
    cognitoUser.forgotPassword({
        onSuccess: function(result) {
            console.log('call result: ' + result);
        },
        onFailure: function(err) {
            alert(err);
        },
        inputVerificationCode() { // this is optional, and likely won't be implemented as in AWS's example (i.e, prompt to get info)
            var verificationCode = prompt('Please input verification code ', '');
            var newPassword = prompt('Enter new password ', '');
            cognitoUser.confirmPassword(verificationCode, newPassword, this);
        }
    });
}

// confirmPassword can be separately built out as follows...  
export function confirmPassword(username, verificationCode, newPassword) {
    cognitoUser = new AWSCognito.CognitoUser({
        Username: username,
        Pool: userPool
    });

    return new Promise((resolve, reject) => {
        cognitoUser.confirmPassword(verificationCode, newPassword, {
            onFailure(err) {
                reject(err);
            },
            onSuccess() {
                resolve();
            },
        });
    });
}

Restablecer la contraseña con el flujo de contraseña olvidada tiene dos pasos:

  1. Inicie el proceso solicitando un código de verificación del servicio. Se enviará un código al teléfono / correo electrónico del usuario.
  2. Establezca la nueva contraseña utilizando el código de verificación entregado.

Utilice estas dos funciones para realizar los pasos anteriores y restablecer la contraseña:

  1. cognitoUser.forgotPassword(): Esto iniciará el flujo del proceso de contraseña olvidada. El servicio genera un código de verificación y lo envía al usuario. Los “datos”, devueltos a través de callback.inputVerificationCode (datos), indican dónde se envió el código de verificación.

  2. cognitoUser.confirmPassword(): Utilice el código de verificación entregado con esta función para establecer una nueva contraseña.

Tuve el mismo problema. Pude trabajar con él usando confirmPassword () de la siguiente manera.

//validation of input from form
req.checkBody('email', 'Username is required').notEmpty();
req.checkBody('password', 'Password is required').notEmpty();
req.checkBody('confirmationcode', 'Confirmation Code is required').notEmpty();


var confirmationCode = req.body.confirmationcode;
var password = req.body.password;
var userPool = new AmazonCognitoIdentity.CognitoUserPool(poolData);


var userData = {
    Username: req.body.email,
    Pool: userPool
};
var cognitoUser = new AmazonCognitoIdentity.CognitoUser(userData);

cognitoUser.confirmPassword(confirmationCode, password, {
    onFailure(err) {
        console.log(err);
    },
    onSuccess() {
        console.log("Success");
    },
});
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *