Autenticação de Website CloudScape
O gerador de Autenticação para Site CloudScape adiciona autenticação ao seu site CloudScape utilizando Amazon Cognito.
Este gerador configura a infraestrutura CDK para criar um Cognito User Pool e um Identity Pool associado, além de uma interface hospedada para fluxos de login de usuários e sua integração com seu site CloudScape.
Uso
Adicionar autenticação ao seu site CloudScape
Você pode adicionar autenticação ao seu site CloudScape de duas formas:
- Instale o Nx Console VSCode Plugin se ainda não o fez
- Abra o console Nx no VSCode
- Clique em
Generate (UI)
na seção "Common Nx Commands" - Procure por
@aws/nx-plugin - ts#cloudscape-website#auth
- Preencha os parâmetros obrigatórios
- Clique em
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
Você também pode realizar uma execução simulada para ver quais arquivos seriam alterados
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
Opções
Parâmetro | Tipo | Padrão | Descrição |
---|---|---|---|
project Obrigatório | string | - | The root directory of the Cloudscape application. |
cognitoDomain Obrigatório | string | - | The cognito domain prefix to use |
allowSignup | boolean | Whether to allow self-signup |
Saída do Gerador
Você encontrará as seguintes alterações em seu site React:
Directorysrc
Directorycomponents
DirectoryCognitoAuth
- index.tsx Componente principal de autenticação
- main.tsx Atualizado para instrumentar o componente CognitoAuth
Você também encontrará o seguinte código de infraestrutura gerado em packages/common/constructs
:
Directorysrc
Directorycore
- user-identity.ts Construct que define o user pool e o identity pool
Uso da Infraestrutura
Você precisará adicionar o construct UserIdentity
à sua stack, declarando-o antes do construct do site:
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'); }}
O construct UserIdentity
adiciona automaticamente a Configuração de Runtime necessária para garantir que seu site possa apontar para o Cognito User Pool correto para autenticação.
Concedendo acesso a usuários autenticados
Para conceder a usuários autenticados acesso para realizar determinadas ações, como conceder permissões para invocar uma API, você pode adicionar políticas IAM à função autenticada do 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'); }}