As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Autenticação de usuários de aplicações existentes do React ao usar o Amazon Cognito e o AWS Amplify UI
Daniel Kozhemyako, Amazon Web Services
Resumo
Este padrão demonstra como adicionar funcionalidades de autenticação a uma aplicação frontend existente do React ao usar a biblioteca do AWS Amplify UI e um grupo de usuários do Amazon Cognito.
O padrão usa o Amazon Cognito para fornecer autenticação, autorização e gerenciamento de usuários para a aplicação. Ele também usa um componente do Amplify UI
Depois de implementar esse padrão, os usuários podem entrar usando qualquer uma das seguintes credenciais:
Nome de usuário e senha
Provedores de identidades sociais, como o Apple, Facebook, o Google e o Amazon
Provedores de identidade corporativa compatíveis com SAML 2.0 ou OpenID Connect (OIDC)
nota
Para criar um componente personalizado da interface do usuário de autenticação, é possível executá-lo no Authenticator UI com o modo sem periféricos.
Pré-requisitos e limitações
Pré-requisitos
Um ativo Conta da AWS
Uma aplicação da web do React, versão 18.2.0 ou versões posteriores
Node.js e npm, versões 6.14.4 ou versões posteriores, instalados
Limitações
Esse padrão se aplica somente aos aplicativos web React.
Esse padrão usa um componente Amplify UI pré-construído. A solução não abrange as etapas necessárias para implementar um componente de UI personalizado.
Versões do produto
Amplify UI 6.1.3 ou versões posteriores (Gen 1)
Amplify 6.0.16 ou versões posteriores (Gen 1)
Arquitetura
Arquitetura de destino
O diagrama apresentado a seguir ilustra uma arquitetura que usa o Amazon Cognito para autenticar usuários em uma aplicação da web do React.

Ferramentas
Serviços da AWS
O Amazon Cognito fornece autenticação, autorização e gerenciamento de usuários para suas aplicações Web e móveis.
Outras ferramentas
O Amplify UI
é uma biblioteca de interface do usuário de código aberto que oferece componentes personalizáveis que podem ser conectados à nuvem. O Node.js
é um ambiente de tempo de JavaScript execução orientado a eventos projetado para criar aplicativos de rede escaláveis. O npm
é um registro de software executado em um ambiente Node.js e usado para compartilhar ou emprestar pacotes e gerenciar a implantação de pacotes privados.
Práticas recomendadas
Se você estiver criando uma nova aplicação, recomendamos o uso do Amplify Gen 2.
Épicos
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Criar um grupo de usuários. | Criar um grupo de usuários do Amazon Cognito. Configure as opções de login e os parâmetros de segurança do grupo de usuários de acordo com os requisitos do seu caso de uso. | Desenvolvedor de aplicativos |
Adicionar um cliente de aplicativo. | Configure um cliente do aplicativo do grupo de usuários. Este cliente é necessário para que sua aplicação interaja com o grupo de usuários do Amazon Cognito. | Desenvolvedor de aplicativos |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Instale as dependências. | Para instalar os pacotes
| Desenvolvedor de aplicativos |
Configure o grupo de usuários. | Com base no exemplo a seguir, crie um arquivo
| Desenvolvedor de aplicativos |
Importe e configure o serviço Amplify. |
| Desenvolvedor de aplicativos |
Adicione o componente Authenticator UI. | Para exibir o componente
notaO trecho de código de exemplo importa o componente O componente
Veja o componente do exemplo a seguir:
notaPara obter um arquivo | Desenvolvedor de aplicativos |
(Opcional) Recupere as informações da sessão. | Depois que um usuário é autenticado, você pode recuperar dados do cliente Amplify sobre sua sessão. Por exemplo, você pode recuperar o token web JSON (JWT) da sessão de um usuário para autenticar as solicitações da sessão em uma API de backend. Veja o exemplo a seguir de um cabeçalho de solicitação que inclui um JWT:
| Desenvolvedor de aplicativos |
Solução de problemas
| Problema | Solução |
|---|---|
Novos usuários não podem se cadastrar no aplicativo. | Conforme indicado a seguir, certifique-se de que o grupo de usuários do Amazon Cognito esteja configurado para permitir que os usuários se registrem no próprio grupo de usuários:
|
O componente Auth parou de funcionar após a atualização da versão 5 para a 6. | Na versão 6 do Amplify, a categoria |
Recursos relacionados
Crie um novo aplicativo React
(documentação do React) O que é o Amazon Cognito? (documentação do Amazon Cognito)
Amplify UI library
(documentação do Amplify)
Mais informações
O arquivo App.js deve conter o seguinte 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;