Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Autentica gli utenti delle applicazioni React esistenti utilizzando l'interfaccia utente di Amazon Cognito e Amplify AWS
Creato da Daniel Kozhemyako () AWS
Ambiente: produzione | Tecnologie: app Web e mobili; Sicurezza, identità, conformità; Produttività aziendale; Analisi | AWSservizi: Amazon Cognito; AWS Amplify; Amazon Connect; Console di gestione AWS |
Riepilogo
Questo modello mostra come aggiungere funzionalità di autenticazione a un'applicazione React frontend esistente utilizzando una libreria AWS Amplify UI e un pool di utenti Amazon Cognito.
Il modello utilizza Amazon Cognito per fornire l'autenticazione, l'autorizzazione e la gestione degli utenti per l'applicazione. Utilizza anche un componente di Amplify
Dopo aver implementato questo modello, gli utenti possono accedere utilizzando una delle seguenti credenziali:
Nome utente e password
Provider di identità social, come Apple, Facebook, Google e Amazon
Provider di identità aziendali compatibili con la SAML versione 2.0 o con OpenID Connect () OIDC
Nota: per creare un componente dell'interfaccia utente di autenticazione personalizzato, puoi eseguire il componente dell'interfaccia utente Authenticator in modalità headless.
Prerequisiti e limitazioni
Prerequisiti
Un attivo Account AWS
Un'applicazione web React 18.2.0 o successiva
Limitazioni
Questo modello si applica solo alle applicazioni web React.
Questo modello utilizza un componente Amplify UI predefinito. La soluzione non copre i passaggi necessari per implementare un componente dell'interfaccia utente personalizzato.
Versioni del prodotto
Amplify UI 6.1.3 o versione successiva (Gen 1)
Amplify 6.0.16 o versione successiva (Gen 1)
Architettura
Architettura Target
Il diagramma seguente mostra un'architettura che utilizza Amazon Cognito per autenticare gli utenti per un'applicazione web React.
Strumenti
Servizi AWS
Amazon Cognito fornisce autenticazione, autorizzazione e gestione degli utenti per app Web e mobili.
Altri strumenti
Amplify
UI è una libreria di interfaccia utente open source che fornisce componenti personalizzabili che puoi connettere al cloud. Node.js
è un ambiente di JavaScript runtime basato sugli eventi progettato per la creazione di applicazioni di rete scalabili. npm
è un registro software che viene eseguito in un ambiente Node.js e viene utilizzato per condividere o prendere in prestito pacchetti e gestire la distribuzione di pacchetti privati.
Best practice
Se stai creando una nuova applicazione, ti consigliamo di utilizzare Amplify Gen 2.
Epiche
Attività | Descrizione | Competenze richieste |
---|---|---|
Crea un pool di utenti. | Crea un pool di utenti Amazon Cognito. Configura le opzioni di accesso e i requisiti di sicurezza del pool di utenti in base al tuo caso d'uso. | Sviluppatore di app |
Aggiungi un client per l'app. | Configura un client di app per pool di utenti. Questo client è necessario per consentire all'applicazione di interagire con il pool di utenti di Amazon Cognito. | Sviluppatore di app |
Attività | Descrizione | Competenze richieste |
---|---|---|
Installare le dipendenze. | Per installare i
| Sviluppatore di app |
Configura il pool di utenti. | In base all'esempio seguente, create un
| Sviluppatore di app |
Importa e configura il servizio Amplify. |
| Sviluppatore di app |
Aggiungi il componente Authenticator UI. | Per visualizzare il componente dell'
Nota: lo snippet di codice di esempio importa il componente Il componente
Vedi il seguente componente di esempio:
Nota: per un | Sviluppatore di app |
(Facoltativo) Recupera le informazioni sulla sessione. | Dopo l'autenticazione di un utente, puoi recuperare i dati relativi alla sua sessione dal client Amplify. Ad esempio, puoi recuperare il JSON web token (JWT) dalla sessione di un utente in modo da poter autenticare le richieste dalla sua sessione a un backend. API Guarda il seguente esempio di intestazione di richiesta che include: JWT
| Sviluppatore di app |
Risoluzione dei problemi
Problema | Soluzione |
---|---|
I nuovi utenti non possono iscriversi all'applicazione. | Come segue, assicurati che il tuo pool di utenti Amazon Cognito sia configurato per consentire agli utenti di registrarsi per far parte del pool di utenti:
|
Il componente di autenticazione ha smesso di funzionare dopo l'aggiornamento dalla v5 alla v6. | La |
Risorse correlate
Crea una nuova app React
(documentazione React) Cos'è Amazon Cognito? (documentazione di Amazon Cognito)
Informazioni aggiuntive
Il App.js
file deve contenere il seguente codice:
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;