Autenticación del Sitio Web de CloudScape
El generador de Autenticación para CloudScape Website agrega autenticación a tu sitio web CloudScape utilizando Amazon Cognito.
Este generador configura la infraestructura CDK para crear un User Pool de Cognito y un Identity Pool asociado, así como una interfaz de usuario alojada para manejar flujos de inicio de sesión, y su integración con tu sitio web CloudScape.
Uso
Agregar autenticación a tu sitio web CloudScape
Puedes agregar autenticación a tu sitio web CloudScape de dos formas:
- Instale el Nx Console VSCode Plugin si aún no lo ha hecho
- Abra la consola Nx en VSCode
- Haga clic en
Generate (UI)
en la sección "Common Nx Commands" - Busque
@aws/nx-plugin - ts#cloudscape-website#auth
- Complete los parámetros requeridos
- Haga clic en
Generate
pnpm nx g @aws/nx-plugin:ts#cloudscape-website#auth
yarn nx g @aws/nx-plugin:ts#cloudscape-website#auth
npx nx g @aws/nx-plugin:ts#cloudscape-website#auth
bunx nx g @aws/nx-plugin:ts#cloudscape-website#auth
También puede realizar una ejecución en seco para ver qué archivos se cambiarían
pnpm nx g @aws/nx-plugin:ts#cloudscape-website#auth --dry-run
yarn nx g @aws/nx-plugin:ts#cloudscape-website#auth --dry-run
npx nx g @aws/nx-plugin:ts#cloudscape-website#auth --dry-run
bunx nx g @aws/nx-plugin:ts#cloudscape-website#auth --dry-run
Opciones
Parámetro | Tipo | Predeterminado | Descripción |
---|---|---|---|
project Requerido | string | - | The root directory of the Cloudscape application. |
cognitoDomain Requerido | string | - | The cognito domain prefix to use |
allowSignup | boolean | Whether to allow self-signup |
Salida del generador
Encontrarás los siguientes cambios en tu aplicación React:
Directorysrc
Directorycomponents
DirectoryCognitoAuth
- index.tsx Componente principal de autenticación
- main.tsx Actualizado para integrar el componente CognitoAuth
También se generará el siguiente código de infraestructura en packages/common/constructs
:
Directorysrc
Directorycore
- user-identity.ts Construct que define el user pool e identity pool
Uso de infraestructura
Debes agregar el construct UserIdentity
a tu stack, declarándolo antes del construct del sitio web:
import { Stack } from 'aws-cdk-lib';import { Construct } from 'constructs';import { MyWebsite, UserIdentity } from ':my-scope/common-constructs';
export class ApplicationStack extends Stack { constructor(scope: Construct, id: string) { super(scope, id);
new UserIdentity(this, 'Identity');
new MyWebsite(this, 'MyWebsite'); }}
El construct UserIdentity
agrega automáticamente la Configuración de Runtime necesaria para que tu sitio web pueda acceder al User Pool de Cognito correcto.
Otorgar acceso a usuarios autenticados
Para permitir que usuarios autenticados realicen acciones específicas, como otorgar permisos para invocar una API, puedes agregar políticas IAM al rol autenticado del identity pool:
import { Stack } from 'aws-cdk-lib';import { Construct } from 'constructs';import { MyWebsite, UserIdentity, MyApi } from ':my-scope/common-constructs';
export class ApplicationStack extends Stack { constructor(scope: Construct, id: string) { super(scope, id);
const identity = new UserIdentity(this, 'Identity'); const api = new MyApi(this, 'MyApi');
api.grantInvokeAccess(identity.identityPool.authenticatedRole);
new MyWebsite(this, 'MyWebsite'); }}