Tengo una aplicación web Vue.js a la que intento agregar autenticación simple usando AWS Cognito y Amplify Auth. Tengo mi grupo de usuarios configurado con "Concesión de código de autorización" habilitado para el flujo de OAuth. También tengo la URL de redirección configurada como https://example.auth.us-east-2.amazoncognito.com/login?response_type=code&client_id=XXXXXXXX&redirect_uri=https://example.com/auth/verify para la interfaz de usuario alojada.
Esto es lo que hay dentro de la página a la que la IU alojada redirige:
import { Auth } from "aws-amplify"; export default { async created() { try { await Auth.currentSession(); } catch { console.error("Not authorized"); } } }Cuando inicio sesión por primera vez a través de la interfaz de usuario alojada y se me redirige, aparece un error y Amplify no me reconoce como autenticado. Sin embargo, si inicio sesión por segunda vez, no hay ningún error en la consola y tengo una sesión autenticada.
Sé que la concesión del código de autorización no coloca los tokens en la URL, pero los veo en el almacenamiento local incluso en el primer inicio de sesión. el token no se proporciona de esa manera y me gustaría no tener sesiones limitadas a 1 hora. ¿Alguna guía aquí?
Para cualquiera que tenga el mismo problema, este parece ser un problema conocido.
La solución es suscribirse a las acciones de Hub y manejarlo allí como
Hub.listen("auth", ({ payload: { event, data } }) => { switch (event) { case "signIn": // signin actions Auth.currentSession() .then(user => console.log(user)) // redirect to default page .error(err => console.log(err)) case "signOut": // signout actions, redirect to '/' etc case "customOAuthState": // other changes } }consulte https://github.com/aws-amplify/amplify-js/issues/5133#issuecomment-600759135