Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

143
Vistas
El objeto de usuario se está llenando pero Auth.currentSession devuelve "No se encontró ningún usuario"

Cuando el usuario hace clic en el botón "iniciar sesión" y si user.challangeName === 'NEW_PASSWORD_REQUIRED' es verdadero, redirijo al usuario a una página (pantalla de formulario) donde puede proporcionar la entrada para los atributos requeridos y una nueva contraseña . Incluso aunque el objeto de usuario se complete al hacer clic en el botón de inicio de sesión, al usar Auth.currentsession en la pantalla del formulario se imprimirá "No se encontró ningún usuario".

¿Alguien puede decirme por qué no veo ningún usuario? ¿Qué estoy haciendo mal aquí?

Aquí está mi función de inicio de sesión (activada cuando se hace clic en el botón de inicio de sesión) donde dirijo al usuario a la pantalla de cambio de contraseña (pantalla de formulario) si user.challangeName === 'NEW_PASSWORD_REQUIRED' es verdadero.

 const login = async (email, password) => { try { const user = await Auth.signIn(email, password); if (user.challengeName === 'NEW_PASSWORD_REQUIRED') { navigate('/change-password'); return; } if (user) { setToken(user.signInUserSession.idToken.jwtToken); const userDetails = await getAccountDetails(); dispatch({ type: LOGIN, payload: { user: { attributes: user.attributes, username: user.username }, client: userDetails } }); } } catch (error) { await logout(); throw error; } };

Aquí está mi función onSubmit en la pantalla de cambio de contraseña donde eventualmente quiero usar Auth.completeNewPassword para actualizar la contraseña del usuario en Cognito

 const onSubmitClick = (e) => { e.preventDefault(); if (validateFields()); Auth.currentSession() .then((user) => console.log(user)) .catch((err) => console.log(err)); };

Aquí está la documentación proporcionada por AWS https://docs.amplify.aws/lib/auth/manageusers/q/platform/js/#forgot-password y el código proporcionado por AWS para actualizar la contraseña

 Auth.signIn(username, password) .then(user => { if (user.challengeName === 'NEW_PASSWORD_REQUIRED') { const { requiredAttributes } = user.challengeParam; // the array of required attributes, eg ['email', 'phone_number'] Auth.completeNewPassword( user, // the Cognito User Object newPassword, // the new password // OPTIONAL, the required attributes { email: 'xxxx@example.com', phone_number: '1234567890' } ).then(user => { // at this time the user is logged in if no MFA required console.log(user); }).catch(e => { console.log(e); }); } else { // other situations } }).catch(e => { console.log(e); });
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Nueva respuesta actualizada para reflejar su publicación actualizada, cambie onSubmitClick a lo siguiente:

 const onSubmitClick = (e) => { e.preventDefault(); if (validateFields()); Auth.currentAuthenticatedUser() .then(user => { console.log(user)) }) .then((data) => console.log(data)) .catch((err) => console.log(err)); };

Está viendo la documentación que muestra cómo usar el usuario después de Auth.signIn() (que fue mi respuesta anterior), en comparación con lo que usa: Auth.currentAuthenticatedUser() . El ejemplo de documentación adecuado que debe consultar es este:https://www.docs.amplify.aws/lib/auth/manageusers/q/platform/js

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda