Saltearse al contenido

Autenticación del Sitio Web de CloudScape

El generador de Autenticación para Sitio Web CloudScape agrega autenticación a tu sitio web de CloudScape usando Amazon Cognito.

Este generador configura la infraestructura de CDK para crear un User Pool de Cognito y un Identity Pool asociado, así como una interfaz hospedada para manejar flujos de inicio de sesión y su integración con tu sitio web de CloudScape.

Agregar autenticación a tu sitio web de CloudScape

Sección titulada «Agregar autenticación a tu sitio web de CloudScape»

Puedes agregar autenticación a tu sitio web de CloudScape de dos maneras:

  1. Instale el Nx Console VSCode Plugin si aún no lo ha hecho
  2. Abra la consola Nx en VSCode
  3. Haga clic en Generate (UI) en la sección "Common Nx Commands"
  4. Busque @aws/nx-plugin - ts#cloudscape-website#auth
  5. Complete los parámetros requeridos
    • Haga clic en Generate
    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

    Encontrarás los siguientes cambios en tu sitio web de 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

    Debes agregar el constructo UserIdentity a tu stack, declarándolo antes del constructo del sitio web:

    packages/infra/src/stacks/application-stack.ts
    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 constructo UserIdentity agrega automáticamente la Configuración en tiempo de ejecución necesaria para que tu sitio web pueda apuntar al User Pool de Cognito correcto.

    Para permitir que usuarios autenticados realicen ciertas acciones, como otorgar permisos para invocar una API, puedes agregar declaraciones de políticas de IAM al rol autenticado del identity pool:

    packages/infra/src/stacks/application-stack.ts
    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');
    }
    }