Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Autentique a los usuarios de la aplicación React mediante las interfaces de usuario de Amazon Cognito y AWS Amplify
Daniel Kozhemyako, Amazon Web Services
Resumen
Este patrón muestra cómo añadir capacidades de autenticación a una aplicación React de frontend existente mediante una biblioteca de interfaz de usuario de AWS Amplify y un grupo de usuarios de Amazon Cognito.
El patrón emplea Amazon Cognito para proporcionar autenticación, autorización y administración de usuarios en la aplicación. También utiliza un componente de Amplify UI
Tras implementar este patrón, los usuarios pueden iniciar sesión con cualquiera de las siguientes credenciales:
Nombre de usuario y contraseña
Proveedores de identidad social, como Apple, Facebook, Google y Amazon
Proveedores de identidad empresarial compatibles con SAML 2.0 o con OpenID Connect (OIDC)
nota
Para crear un componente de interfaz de usuario de autenticación personalizado, puede ejecutar el componente de interfaz de usuario de Authenticator en modo sin periféricos.
Requisitos previos y limitaciones
Requisitos previos
Un activo Cuenta de AWS
Una aplicación web de React 18.2.0 o posterior
Node.js y npm 6.14.4 o posterior, instalados
Limitaciones
Este patrón se aplica únicamente a aplicaciones web React.
Este patrón emplea un componente de Amplify UI prediseñado. La solución no abarca los pasos necesarios para implementar un componente de interfaz de usuario personalizado.
Versiones de producto
Amplify UI 6.1.3 o posterior (Gen 1)
Amplify 6.0.16 o posterior (Gen 1)
Arquitectura
Arquitectura de destino
En el siguiente diagrama se muestra una arquitectura que emplea Amazon Cognito para autenticar usuarios en una aplicación web React.

Tools (Herramientas)
Servicios de AWS
Amazon Cognito ofrece autenticación, autorización y administración de usuarios para aplicaciones móviles y web.
Otras herramientas
Amplify UI
es una biblioteca de interfaz de usuario de código abierto que proporciona componentes personalizables que se pueden conectar a la nube. Node.js
es un entorno de JavaScript ejecución basado en eventos diseñado para crear aplicaciones de red escalables. npm
es un registro de software que se ejecuta en un entorno Node.js y se utiliza para compartir o tomar prestados paquetes y administrar la implementación de paquetes privados.
Prácticas recomendadas
Si está desarrollando una nueva aplicación, le recomendamos que use Amplify Gen 2.
Epics
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Cree un grupo de usuarios. | Crear un grupo de usuarios de Amazon Cognito. Configure las opciones de inicio de sesión y los requisitos de seguridad del grupo de usuarios según su caso de uso. | Desarrollador de aplicaciones |
Agregar un cliente de aplicación. | Configure un cliente de aplicación para un grupo de usuarios. Este cliente es necesario para que la aplicación interactúe con el grupo de usuarios de Amazon Cognito. | Desarrollador de aplicaciones |
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Instale las dependencias. | Para instalar los paquetes
| Desarrollador de aplicaciones |
Configure el grupo de usuarios. | Según el siguiente ejemplo, cree un archivo
| Desarrollador de aplicaciones |
Importe y configure el servicio Amplify. |
| Desarrollador de aplicaciones |
Agregue el componente de interfaz de usuario de Authenticator. | Para mostrar el componente de interfaz de usuario de
notaEl fragmento de código de ejemplo importa el componente de interfaz de usuario El componente de interfaz de usuario
Vea el siguiente ejemplo de componente:
notaPara ver un ejemplo de un archivo | Desarrollador de aplicaciones |
(Opcional) Recupere la información de la sesión. | Una vez autenticado un usuario, puede recuperar sus datos de sesión del cliente Amplify. Por ejemplo, puede recuperar el token web JSON (JWT) de la sesión de un usuario para autenticar las solicitudes de su sesión en una API de backend. Consulte el siguiente ejemplo de un encabezado de solicitud que incluye un JWT:
| Desarrollador de aplicaciones |
Resolución de problemas
| Problema | Solución |
|---|---|
Los usuarios nuevos no pueden registrarse en la aplicación. | Asegúrese de que su grupo de usuarios de Amazon Cognito esté configurado para permitir que los usuarios puedan registrarse ellos mismos en el grupo de usuarios.
|
El componente de autenticación dejó de funcionar después de actualizar de la v5 a la v6. | La categoría |
Recursos relacionados
Cree una nueva aplicación de React
(documentación de React) ¿Qué es Amazon Cognito? (Documentación de Amazon Cognito)
Librería de Amplify UI
(documentación de Amplify)
Información adicional
El archivo App.js debe contener el siguiente código:
import './App.css'; import { Amplify } from 'aws-amplify'; import awsExports from './aws-exports'; import { fetchAuthSession } from 'aws-amplify/auth'; import { Authenticator } from '@aws-amplify/ui-react'; import '@aws-amplify/ui-react/styles.css'; Amplify.configure({ ...awsExports }); let token = (await fetchAuthSession()).tokens?.idToken?.toString(); function App() { return ( <Authenticator> {({ signOut, user }) => ( <div> <p>Welcome {user.username}</p> <p>Your token is: {token}</p> <button onClick={signOut}>Sign out</button> </div> )} </Authenticator> ); } export default App;