Tengo una aplicación nextjs que usa aws cognito para autenticación. Me preguntaba si hay alguna forma de reemplazar la interfaz de usuario alojada proporcionada por aws con mi propio formulario personalizado.
import { Domain } from "@material-ui/icons"; import NextAuth from "next-auth"; import Providers from "next-auth/providers"; export default NextAuth({ providers:[ Providers.Cognito({ clientId:process.env.COGNITO_CLIENT, clientSecret:process.env.COGNITO_CLIENT_SECRET, domain: process.env.COGNITO_DOMAIN }) ] })Técnicamente, sí es posible, pero la respuesta de @alexrogo es engañosa. Amplify, además de ser muy cuestionable (solo mira los tickets abiertos en github), no usa el estándar OpenIDConnect. Está realizando una operación de autenticación de inicio de Cognito directa que devuelve tokens sin alcance de openid. Si intenta llamar, por ejemplo, al punto final /userinfo en Cognito, eso fallará. Además, Amplify mantiene los tokens en el almacenamiento local o en las cookies, según cómo lo configure, pero no es una cookie httponly... Eso es muy problemático.
Pero dicho esto, es posible reemplazar HostedUI, pero tenga cuidado, ¡ya que HostedUI no es solo una interfaz de usuario! Es un servidor de autorización completo. Y debe implementar esas funcionalidades usted mismo si desea omitir su página de inicio de sesión. Consulte aquí para obtener más detalles: flujo de concesión de código de autorización de AWS Cognito sin utilizar la interfaz de usuario alojada
Sí, esto es posible.
Puede conectar sus propios componentes de interfaz de usuario a las API de Cognitio. Puede almacenar su token de autenticación en el almacenamiento estatal o local. Echa un vistazo a esta Documentación .
Allí encontrará todas las funciones necesarias, incluidos Registrarse, Iniciar sesión, Cerrar sesión, Cambiar atributos de usuario, tokens de actualización.
Solo para seguir con @alexrogo, Amplify tiene un sistema de componentes conectados a la interfaz de usuario completamente integrado, por lo que no tiene que crear su propia interfaz de usuario personalizada. Esta es la guía de inicio.
El flujo predeterminado cuando configura un nuevo grupo de usuarios con Amplify es el flujo USER_SRP_AUTH . La interfaz de usuario alojada de Cognito tiene opciones para la federación OAuth 2.0 y OpenID Connect
Dicho esto, si lo prefiere, puede configurar cuentas federadas de OAuth 2.0 con la interfaz de usuario de Amplify, como se ve aquí .