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.
Crear una aplicación React con AWS Amplify y añadir autenticación con Amazon Cognito
Creado por Rishi Singla (AWS)
Resumen
Este patrón muestra cómo usar AWS Amplify para crear una aplicación basada en React y cómo añadir autenticación a frontend mediante Amazon Cognito. AWS Amplify consta de un conjunto de herramientas (marco de código abierto, entorno de desarrollo visual, consola) y servicios (alojamiento de aplicaciones web y sitios web estáticos) para acelerar el desarrollo de aplicaciones móviles y web en AWS.
Requisitos previos y limitaciones
Requisitos previos
Versiones de producto
Node.js versión 10.x o posterior (para verificar su versión, ejecute node -v
en una ventana de terminal)
npm versión 6.x o posterior (para verificar su versión, ejecute npm -v
en una ventana de terminal)
Arquitectura
Pila de tecnología de destino
AWS Amplify
Amazon Cognito
Epics
Tarea | Descripción | Habilidades requeridas |
---|
Instalar la CLI de Amplify | La CLI de Amplify es una cadena de herramientas unificada para crear servicios en la nube de AWS para su aplicación React. Para instalar la CLI de Amplify, ejecute: npm install -g @aws-amplify/cli
npm le notificará si hay una nueva versión principal disponible. Si es así, utilice el siguiente comando para actualizar su versión de npm: npm install -g npm@9.8.0
donde 9.8.0 se refiere a la versión que desea instalar. | Desarrollador de aplicaciones |
Tarea | Descripción | Habilidades requeridas |
---|
Crear una React App. | Para crear una nueva aplicación React, utilice el comando: npx create-react-app amplify-react-application
donde ampify-react-application es el nombre de la aplicación. Cuando haya creado correctamente la aplicación, verá el siguiente mensaje: Success! Created amplify-react-application
Se creará un directorio con varias subcarpetas para la aplicación React. | Desarrollador de aplicaciones |
Inicie la aplicación en el equipo local. | Vaya al directorio amplify-react-application que se creó en el paso anterior y ejecute el comando: amplify-react-application% npm start
Esto inicia la aplicación React en la máquina local. | Desarrollador de aplicaciones |
Tarea | Descripción | Habilidades requeridas |
---|
Configure Amplify para que se conecte a su cuenta de AWS. | Configure Amplify ejecutando el comando: amplify-react-application % amplify configure
La CLI de Amplify le pide que siga estos pasos para configurar el acceso a su cuenta de AWS: Inicie sesión en su cuenta de administrador de AWS. Especifique la región de AWS que quiere utilizar. Cree un usuario de AWS Identity and Access Management (IAM) con acceso programático y adjunte la política de permisos AdministratorAccess-Amplify al usuario. Cree y luego copie el ID de la clave de acceso y la clave de acceso secreta. Introduzca estos detalles en la terminal. Cree un nombre de perfil o utilice el perfil por defecto.
Este escenario requiere que los usuarios de IAM dispongan de acceso programático y credenciales a largo plazo, lo que supone un riesgo para la seguridad. Para ayudar a mitigar este riesgo, le recomendamos que brinde a estos usuarios únicamente los permisos que necesitan para realizar la tarea y que los elimine cuando ya no los necesiten. Las claves de acceso se pueden actualizar si es necesario. Para obtener más información, consulte Actualización de claves de acceso en la Guía de usuario de IAM. Estos pasos se muestran en la terminal de la siguiente manera. Follow these steps to set up access to your AWS account:
Sign in to your AWS administrator account:
https://console.aws.amazon.com/
Press Enter to continue
Specify the AWS Region
? region: us-east-1
Follow the instructions at
https://docs.amplify.aws/cli/start/install/#configure-the-amplify-cli
to complete the user creation in the AWS console
https://console.aws.amazon.com/iamv2/home#/users/create
Press Enter to continue
Enter the access key of the newly created user:
? accessKeyId: ********************
? secretAccessKey: ****************************************
This would update/create the AWS Profile in your local machine
? Profile Name: new
Successfully set up the new user.
Para obtener más información sobre estos pasos, consulte la documentación del Amplify Dev Center. | AWS general, desarrollador de aplicaciones |
Tarea | Descripción | Habilidades requeridas |
---|
Inicialice Amplify. | Para inicializar Amplify en el nuevo directorio, ejecute: amplify init
Amplify le solicita el nombre del proyecto y los parámetros de configuración Especifique todos los parámetros y, a continuación, pulse Y para inicializar el proyecto con la configuración especificada. Project information
| Name: amplifyreactproject
| Environment: dev
| Default editor: Visual Studio Code
| App type: javascript
| Javascript framework: react
| Source Directory Path: src
| Distribution Directory Path: build
| Build Command: npm run-script build
| Start Command: npm run-script start
Seleccione el perfil que creó en el paso anterior. Los recursos se desplegarán en el entorno dev del proyecto Amplify que creó. Para confirmar que se han creado los recursos, puede abrir la consola de AWS Amplify y ver la CloudFormation plantilla de AWS que se utilizó para crear los recursos y los detalles. Deploying root stack amplifyreactproject [ ====================-------------------- ] 2/4
amplify-amplifyreactproject-d… AWS::CloudFormation::Stack CREATE_IN_PROGRESS
UnauthRole AWS::IAM::Role CREATE_COMPLETE
DeploymentBucket AWS::S3::Bucket CREATE_IN_PROGRESS
AuthRole AWS::IAM::Role CREATE_COMPLETE
| Desarrollador de aplicaciones, AWS general |
Tarea | Descripción | Habilidades requeridas |
---|
Añada la autenticación. | Puede usar el comando amplify add <category> para agregar característica como el inicio de sesión de un usuario o una API de backend. En este paso, utilizará el comando para añadir la autenticación. Amplify proporciona un servicio de autenticación de backend con Amazon Cognito, bibliotecas de frontend y un componente de Authenticator UI integrado. Las características incluyen el registro de usuarios, el inicio de sesión de los usuarios, la autenticación multifactorial, el cierre de sesión de los usuarios y el inicio de sesión sin contraseña. También puede autenticar a los usuarios mediante la integración con proveedores de identidad federados, como Amazon, Google y Facebook. La categoría de autenticación de Amplify se integra perfectamente con otras categorías de Amplify, como API, análisis y almacenamiento, para que pueda definir reglas de autorización para usuarios autenticados y no autenticados. Para configurar la autenticación de su aplicación React, ejecute el comando: amplify-react-application1 % amplify add auth
Esto muestra la siguiente información y solicitudes. Puede elegir la configuración adecuada en función de sus requisitos empresariales y de seguridad. Using service: Cognito, provided by: awscloudformation
The current configured provider is Amazon Cognito.
Do you want to use the default authentication and security configuration? (Use arrow keys)
❯ Default configuration
Default configuration with Social Provider (Federation)
Manual configuration
I want to learn more.
Para ver un ejemplo sencillo, seleccione la configuración predeterminada y, a continuación, seleccione el mecanismo de inicio de sesión para los usuarios (en este caso, el correo electrónico): How do you want users to be able to sign in?
Username
❯ Email
Phone Number
Email or Phone Number
I want to learn more.
Omita la configuración avanzada para completar la adición de los recursos de autenticación: Do you want to configure advanced settings? (Use arrow keys)
❯ No, I am done.
Yes, I want to make some additional changes.
Cree sus recursos de backend locales y aprovisiónelos en la nube: amplify-react-application1 % amplify push
Este comando realiza los cambios adecuados en los grupos de usuarios de Congito de su cuenta. Pulse Y para configurar el auth recurso mediante CloudFormation. Esto configura los siguientes recursos: UserPool AWS::Cognito::UserPool CREATE_COMPLETE
UserPoolClientWeb AWS::Cognito::UserPoolClient CREATE_COMPLETE
UserPoolClientWeb AWS::Cognito::UserPoolClient CREATE_COMPLETE
UserPoolClientRole AWS::IAM::Role CREATE_COMPLETE
UserPoolClientLambda AWS::Lambda::Function CREATE_COMPLETE
UserPoolClientLambdaPolicy AWS::IAM::Policy CREATE_COMPLETE
UserPoolClientLogPolicy AWS::IAM::Policy CREATE_IN_PROGRESS
También puede usar la Consola de AWS Cognito para ver estos recursos (busque grupos de usuarios y grupos de identidades de Cognito). Este paso actualiza el archivo aws-exports.js de la carpeta src de la aplicación React con las configuraciones del grupo de usuarios y del grupo de identidades de Cognito.
| Desarrollador de aplicaciones, AWS general |
Tarea | Descripción | Habilidades requeridas |
---|
Cambie el archivo App.js. | En la carpeta src , abra y revise el archivo App.js . El archivo modificado debe tener el siguiente aspecto: { App.Js File after modifications:
import React from 'react';
import logo from './logo.svg';
import './App.css';
import { Amplify } from 'aws-amplify';
import { withAuthenticator, Button, Heading } from '@aws-amplify/ui-react';
import awsconfig from './aws-exports';
Amplify.configure(awsconfig);
function App({ signOut }) {
return (
<div>
<h1>Thankyou for doing verification</h1>
<h2>My Content</h2>
<button onClick={signOut}>Sign out</button>
</div>
);
}
export default withAuthenticator(App);
| Desarrollador de aplicaciones |
Importe paquetes de React. | El archivo App.js importa dos paquetes de React. Instale estos paquete mediante el comando: amplify-react-application1 % npm install --save aws-amplify @aws-amplify/ui-react
| Desarrollador de aplicaciones |
Tarea | Descripción | Habilidades requeridas |
---|
Inicie la aplicación. | Inicie la aplicación React en su máquina local: amplify-react-application1 % npm start
| Desarrollador de aplicaciones, AWS general |
Compruebe la autenticación. | Compruebe si la aplicación solicita los parámetros de autenticación. (En nuestro ejemplo, configuramos el correo electrónico como método de inicio de sesión). La frontend UI debería pedirle las credenciales de inicio de sesión y ofrecerle la opción de crear una cuenta. También puede configurar el proceso de compilación de Amplify para añadir el backend como parte de un flujo de trabajo de implementación continua. Sin embargo, este patrón no aborda esa opción. | Desarrollador de aplicaciones, AWS general |
Recursos relacionados