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 actuales de la aplicación React mediante Amazon Cognito y Amplify UI AWS
Creado por Daniel Kozhemyako () AWS
Entorno: producción | Tecnologías: aplicaciones web y móviles; seguridad, identidad y cumplimiento; productividad empresarial; análisis | AWSservicios: Amazon Cognito; AWS Amplify; Amazon Connect; consola de administración AWS |
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 AWS Amplify interfaz de usuario y un grupo de usuarios de Amazon Cognito.
El patrón utiliza Amazon Cognito para proporcionar autenticación, autorización y administración de usuarios a 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 headless.
Requisitos previos y limitaciones
Requisitos previos
Un activo Cuenta de AWS
Una aplicación web de React 18.2.0 o posterior
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
El siguiente diagrama muestra una arquitectura que usa Amazon Cognito para autenticar a los usuarios de una aplicación web de React.
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 puede 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ás creando una aplicación nueva, te recomendamos que utilices 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 para que se adapten a 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
| 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
Nota: El fragmento de código de ejemplo importa el componente de El componente de
Vea el siguiente ejemplo de componente:
Nota: Para 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, puedes recuperar el token JSON web (JWT) de la sesión de un usuario para autenticar las solicitudes de su sesión en un servidor. API Consulta el siguiente ejemplo de un encabezado de solicitud que incluye: JWT
| Desarrollador de aplicaciones |
Resolución de problemas
Problema | Solución |
---|---|
Los usuarios nuevos no pueden registrarse en la aplicación. | De la siguiente manera, asegúrese de que su grupo de usuarios de Amazon Cognito esté configurado para permitir que los usuarios se registren ellos mismos para formar parte del grupo de usuarios:
|
El componente de autenticación dejó de funcionar tras la actualización de la v5 a la v6. | La |
Recursos relacionados
Cree una nueva aplicación de React
(documentación de React) ¿Qué es Amazon Cognito? (documentación de Amazon Cognito)
Biblioteca de interfaz de usuario Amplify
(documentación de Amplify)
Información adicional
El App.js
archivo 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;