nodejs listobjects aws javascript amazon-web-services amazon-cognito

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



s3 upload javascript sdk (3)

Así que en mi aplicación, obviamente, quiero proporcionar los medios para que los usuarios puedan restablecer sus contraseñas. Sin embargo, el problema que tengo es que la nueva documentación para Grupos de Usuarios es bastante ambigua en este tema. Esto es lo que le dicen que haga para un flujo de Contraseña Olvidada, y el enlace que puede encontrar en:

cognitoUser.forgotPassword({ onSuccess: function (result) { console.log(''call result: '' + result); }, onFailure: function(err) { alert(err); }, inputVerificationCode() { var verificationCode = prompt(''Please input verification code '' ,''''); var newPassword = prompt(''Enter new password '' ,''''); cognitoUser.confirmPassword(verificationCode, newPassword, this); } });

http://docs.aws.amazon.com/cognito/latest/developerguide/using-amazon-cognito-user-identity-pools-javascript-examples.html

Sin embargo, cuando coloco este código en mi proyecto donde se define e inicia sesión un usuario cognitivo, parece que no ocurre nada. Entiendo que necesito integrar de alguna manera este código con el envío de un código de verificación al usuario y pedirles una nueva contraseña, pero no puedo encontrar nada sobre cómo hacer esto. ¿Pensamientos?

Gracias


El restablecimiento de la contraseña con el flujo de contraseña olvidada tiene dos pasos: 1) Comience el proceso solicitando un código de verificación al servicio. Se enviará un código al teléfono / correo electrónico del usuario. 2) Establezca la nueva contraseña con 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 cognitoUser.forgotPassword() . 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() : use el código de verificación entregado con esta función para establecer una nueva contraseña.


Los documentos de AWS son terribles en este tema (Cognito). Básicamente necesita configurar cognitoUser , luego llamar a 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(); }, }); }); }


Tuve el mismo problema. Fue capaz de trabajar a través de 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"); }, });