Erste Schritte mit AWS

Erstellen einer Full-Stack-React-Anwendung

Erstellen Sie eine einfache Web-Anwendung mit AWS Amplify

Modul 3: Authentifizierung hinzufügen

In diesem Modul verwenden Sie die Amplify-CLI und -Bibliotheken zur Konfiguration und zum Hinzufügen von Authentifizierung zu Ihrer Anwendung

Übersicht

Das nächste Feature, das Sie hinzufügen werden, ist die Authentifizierung. In diesem Modul lernen Sie, wie Sie einen Benutzer mit der Amplify-CLI und -Bibliotheken authentifizieren und dabei Amazon Cognito, einen verwalteten Service zur Benutzeridentität, nutzen können.

Sie werden auch lernen, wie Sie die Amplify UI-Komponentenbibliothek einen vollständigen Benutzerauthentifizierungsablauf darstellen, der es Benutzern ermöglicht, sich mit nur wenigen Codezeilen zu registrieren, anzumelden und ihr Passwort zurückzusetzen.

Was Sie erreichen werden

In diesem Modul werden Sie:
  • Amplify-Bibliotheken installieren
  • Erstellen und Bereitstellen eines Authentifizierungsdienstes
  • Ihre React-Anwendung so konfigurieren, dass sie Authentifizierung einschließt

Wichtige Konzepte

Amplify-Bibliotheken – Die Amplify-Bibliotheken ermöglichen Ihnen die Interaktion mit AWS-Services über eine Web- oder mobile Anwendung.

Authentifizierung – In der Software ist Authentifizierung der Prozess der Verifizierung und Verwaltung der Identität eines Benutzers unter Verwendung eines Authentifizierungs-Services oder einer API.

 Benötigte Zeit

10 Minuten

 Verwendete Services

Implementierung

  • Für unser Projekt benötigen wir zwei Amplify-Bibliotheken. Die Hauptbibliothek von aws-amplify enthält alle Client-seitigen APIs für die Interaktion mit den verschiedenen AWS-Services, mit denen wir arbeiten werden, und die @aws-amplify/ui-react-Bibliothek enthält Framework-abhängige UI-Komponenten. Installieren Sie diese Bibliotheken im Stammverzeichnis des Projekts.

    npm install aws-amplify @aws-amplify/ui-react
  • Um den Authentifizierungs-Service zu erstellen, verwenden Sie die Amplify CLI:

    amplify add auth
    
    ? Do you want to use the default authentication and security configuration? Default configuration
    ? How do you want users to be able to sign in? Username
    ? Do you want to configure advanced settings? No, I am done.
  • Nun, da der Authentifizierungs-Service lokal konfiguriert wurde, können wir ihn durch Ausführen des Amplify push-Befehls bereitstellen:

    amplify push --y
  • Die CLI hat eine Datei namens aws-exports.js im src-Verzeichnis unseres Projekts erstellt und wird diese weiterhin aktualisieren. Wir werden diese Datei verwenden, um das React-Projekt über die verschiedenen AWS-Ressourcen zu informieren, die in unserem Amplify-Projekt zur Verfügung stehen.

    Um unsere Anwendung mit diesen Ressourcen zu konfigurieren, öffnen Sie src/index.js und fügen Sie den folgenden Code unterhalb des letzten Imports hinzu:

    import { Amplify } from 'aws-amplify';
    import config from './aws-exports';
    Amplify.configure(config);
    
  • Als Nächstes öffnen Sie src/App.js und aktualisieren Sie mit dem folgenden Code:

    import logo from "./logo.svg";
    import "@aws-amplify/ui-react/styles.css";
    import {
      withAuthenticator,
      Button,
      Heading,
      Image,
      View,
      Card,
    } from "@aws-amplify/ui-react";
    
    function App({ signOut }) {
      return (
        <View className="App">
          <Card>
            <Image src={logo} className="App-logo" alt="logo" />
            <Heading level={1}>We now have Auth!</Heading>
          </Card>
          <Button onClick={signOut}>Sign Out</Button>
        </View>
      );
    }
    
    export default withAuthenticator(App);

    In diesem Code haben wir die withAuthenticator-Komponente verwendet. Diese Komponente stellt einen vollständigen Benutzerauthentifizierungsablauf dar, der es Benutzern ermöglicht, sich für die Multifaktor-Authentifizierung (MFA) zu registrieren, anzumelden, ihr Passwort zurückzusetzen und die Anmeldung zu bestätigen. Wir haben auch eine Schaltfläche zum Abmelden hinzugefügt, um Benutzer abzumelden.

  • Warten Sie, bis die Bereitstellung der Ressourcen abgeschlossen ist, und führen Sie dann die App aus, um den neuen Authentifizierungsablauf zum Schutz der App anzuzeigen:

    npm start

    Hier können Sie versuchen, sich anzumelden. Dabei wird Ihnen ein Bestätigungscode per E-Mail zugesandt. Melden Sie sich mit dem Bestätigungscode bei der Anwendung an. Wenn Sie angemeldet sind, sollten Sie eine Schaltfläche Abmelden sehen, die Sie abmeldet und den Authentifizierungsablauf neu startet.

  • Als Nächstes müssen wir den Erstellungsprozess von Amplify so konfigurieren, dass das Backend als Teil des kontinuierlichen Bereitstellungs-Workflows hinzugefügt wird. Führen Sie in Ihrem Terminalfenster Folgendes aus:

    amplify console
    ? Which site do you want to open? AWS console

    Dadurch wird die Amplify-Konsole geöffnet. Wählen Sie im Navigationsbereich Anwendungseinstellungen > Erstellungseinstellungen und fügen Sie den Abschnitt Backend (Zeilen 2–7 im untenstehenden Code) zu Ihrer amplify.yml hinzu. Nachdem Sie die Änderungen vorgenommen haben, wählen Sie Speichern aus.

    version: 1
    backend:
      phases:
        build:
          commands:
            - '# Execute Amplify CLI with the helper script'
            - amplifyPush --simple
    frontend:
      phases:
        preBuild:
          commands:
            - yarn install
        build:
          commands:
            - yarn run build
      artifacts:
        baseDirectory: build
        files:
          - '**/*'
      cache:
        paths:
          - node_modules/**/*

    Scrollen Sie nach unten zu Image-Einstellungen erstellen und wählen Sie Bearbeiten aus. Wählen Sie das Drop-down-Menü Paketversion überschreiben hinzufügen und wählen Sie Amplify-CLI aus. Es sollte standardmäßig die neueste Version verwendet werden, wie im Bild gezeigt.

    Aktualisieren Sie als Nächstes Ihren Frontend-Bereich so, dass er auf die soeben erstellte Backend-Umgebung verweist. Wählen Sie unter dem Bereichnamen die Option Bearbeiten aus, und verweisen Sie dann mit Ihrem Hauptbereich auf das soeben erstellte Staging-Backend. Wählen Sie Speichern aus.

    Wenn die Meldung Bitte richten Sie eine Servicerolle ein ... angezeigt wird, befolgen Sie die Anweisungen, bevor Sie mit der Einrichtung fortfahren und Ihrer Anwendung eine Servicerolle hinzufügen.

  • Kehren Sie nun zu Ihrem lokalen Terminalfenster zurück und stellen Sie die Änderungen auf GitHub bereit, um einen neuen Entwurf in der Amplify-Konsole zu starten:

    git add .
    git commit -m "added auth"
    git push origin main
    

Zusammenfassung

Mit nur wenigen Codezeilen haben Sie Ihrer Anwendung jetzt eine Benutzer-Authentifizierung hinzugefügt. Im nächsten Modul fügen wir Ihrer Anwendung eine API hinzu.

War diese Seite hilfreich?

API und Datenbank hinzufügen