Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

501
Views
No capturado (en promesa) TypeError: la devolución de llamada no está definida amazon-cognito-identity-js user.completeNewPasswordChallenge

todos. ¿Alguien puede ayudarme a entender por qué recibo un TypeError no capturado (en promesa): la devolución de llamada no está definida en el siguiente código? No llega a las cláusulas de éxito o fracaso.

 const onSubmitPasscode = (event) => { event.preventDefault(); if (passwordFirst !== passwordSecond) { alert('the two inputs provided are not the same'); } else { const user = new CognitoUser({ Username: email, Pool: UserPool }); const authDetails = new AuthenticationDetails({ Username: email, Password: password }); user.authenticateUser(authDetails, { onFailure: (err) => { console.error('onFailure:', err); }, newPasswordRequired: () => { user.completeNewPasswordChallenge(passwordFirst, { onFailure: (err) => { console.error('onFailure:', err); }, onSuccess: (result) => { console.log(passwordFirst); console.log('call result: ', result); navigate('dashboard'); } }); } }); }
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Defina una función onSuccess para authenticateUser :

 user.authenticateUser(authDetails, { onSuccess: (result) => { console.log(result); }, onFailure: (err) => { console.error('onFailure:', err); }, newPasswordRequired: () => { user.completeNewPasswordChallenge(passwordFirst, { onFailure: (err) => { console.error('onFailure:', err); }, onSuccess: (result) => { console.log(passwordFirst); console.log('call result: ', result); navigate('dashboard'); } }); } }

Además, según la documentación , newPasswordRequired toma una función cuya firma es diferente de la que proporciona. Así que creo que lo que podrías querer es realmente:

 user.authenticateUser(authDetails, { onSuccess: (result) => { console.log(passwordFirst); console.log('call result: ', result); navigate('dashboard'); } onFailure: (err) => { console.error('onFailure:', err); }, newPasswordRequired: (userAttributes, requiredAttributes) => { /*whatever you want to do when new password is required*/ } }
about 4 years ago · Juan Pablo Isaza Report

0

Al leer más la documentación, no se permite devolver userAttributes.email_verified y debe eliminarse. Hice esto. Sin embargo, mi aplicación aún no funcionaba porque la API tampoco acepta phone_number_verified en la llamada de devolución. Tengo estas dos líneas ahora:

 const onSubmit = (event) => { // first log in attempt with the temporary passcode OR with permanent changed passcode event.preventDefault(); const authDetails = new AuthenticationDetails({ Username: email, Password: password }); const user = new CognitoUser({ Username: email, Pool: UserPool }); user.authenticateUser(authDetails, { onSuccess: (data) => { console.log('onSuccess:', data); if (location.pathname === '/') { navigate('dashboard'); } }, onFailure: (err) => { console.error('onFailure:', err); }, newPasswordRequired: (data) => { setNewPasscodeRequired(true); // once this is set to true, my application shows a new component which requests the password twice and tells the user the rules for the passcode } }); }; const onSubmitPasscode = (event) => { // once they submit their new passcode event.preventDefault(); if (passwordFirst !== passwordSecond) { alert('the two inputs provided are not the same'); } else { const user = new CognitoUser({ Username: email, Pool: UserPool }); const authDetails = new AuthenticationDetails({ Username: email, Password: password }); user.authenticateUser(authDetails, { onFailure: (err) => { console.error('onFailure:', err); }, onSuccess: (result) => { console.log(result); }, newPasswordRequired: (userAttributes, requiredAttributes) => { delete userAttributes.email_verified; // THIS IS NON NEGOTIABLE delete userAttributes.phone_number_verified; // THIS IS NON NEGOTIABLE user.completeNewPasswordChallenge(passwordFirst, userAttributes, { onFailure: (err) => { console.error('onFailure:', err); }, onSuccess: (result) => { console.log('call result: ', result); navigate('dashboard'); } }); } }); }
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!