Démarrer avec AWS

Créer une application React complète

Créer une application Web simple avec AWS Amplify

Module 3 : Ajouter une authentification

Dans ce module, vous allez utiliser la CLI Amplify et des bibliothèques pour configurer et ajouter une authentification à votre application.

Présentation

La prochaine fonctionnalité que vous ajouterez est l'authentification. Dans ce module, vous apprendrez comment authentifier un utilisateur avec l’interface de ligne de commande et les bibliothèques Amplify, en exploitant Amazon Cognito, un service géré d'identités des utilisateurs.

Vous apprendrez également à utiliser la bibliothèque de composants de l'interface utilisateur Amplify pour mettre en place un flux complet d'authentification des utilisateurs, ce qui permettra à ces derniers de s'inscrire, de se connecter et de réinitialiser leur mot de passe avec seulement quelques lignes de code.

Qu'allez-vous accomplir ?

Dans ce module, vous allez :
  • Installer les bibliothèques Amplify
  • Créer et déployer un service d'authentification
  • Configurer une application React afin d'inclure une authentification

Concepts clés

Bibliothèques Amplify  : ces bibliothèques vous permettent d'interagir avec les services AWS à partir d'une application mobile ou web.

Authentification : au niveau logiciel, l'authentification correspond au processus de vérification et de gestion de l'identité d'un utilisateur avec un service d'authentification ou d'une API.

 Temps nécessaire

10 minutes

 Services utilisés

Mise en œuvre

  • Nous aurons besoin de deux bibliothèques Amplify pour notre projet. La bibliothèque aws-amplify library principale contient toutes les API client que nous utiliserons pour l'intégration avec les différents services AWS et la bibliothèque @aws-amplify/ui-react qui contient les composants de l'interface utilisateur propre au cadre. Installez ces bibliothèques à la racine du projet.

    npm install aws-amplify @aws-amplify/ui-react
  • Pour créer ce service, utilisez l’interface de ligne de commande Amplify :

    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.
  • Une fois le service d'authentification configuré localement, nous pouvons le déployer en exécutant la commande Amplify push :

    amplify push --y
  • La CLI a créé et continuera de mettre à jour le fichier aws-exports.js situé dans le répertoire src de notre projet. Nous utiliserons ce fichier pour faire connaître au projet React les différentes ressources AWS qui sont disponibles dans notre projet Amplify.

    Pour configurer notre application avec ces ressources, ouvrez le fichier src/index.js et ajoutez le code suivant sous la dernière importation :

    import { Amplify } from 'aws-amplify';
    import config from './aws-exports';
    Amplify.configure(config);
    
  • Ensuite, ouvrez le fichier src/App.js et mettez-le à jour avec le code suivant :

    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);

    Dans ce composant, nous avons utilisé le composant withAuthenticator. Ce composant mettra en place un flux d'authentification complet permettant aux utilisateurs de s'inscrire, de se connecter, de réinitialiser leur mot de passe et de confirmer leur connexion pour l'authentification multifactorielle (MFA). Nous avons également ajouté un bouton de Déconnexion pour déconnecter les utilisateurs.

  • Attendez que le déploiement des ressources soit terminé, puis exécutez l'application pour voir le nouveau flux d'authentification protégeant l'application :

    npm start

    Ici, vous pouvez essayer de vous inscrire, ce qui enverra un code de vérification à votre e-mail. Utilisez le code de vérification pour vous connecter à l'application. Une fois connecté, vous devriez voir un bouton de Déconnexion, qui vous déconnecte et redémarre le flux d'authentification.

  • Ensuite, nous devons configurer le processus de génération d'Amplify pour ajouter le backend dans le cadre du flux de travail de déploiement continu. Depuis la fenêtre de votre terminal, exécutez :

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

    Ceci entraîne l'ouverture de la console Amplify. Dans le volet de navigation, choisissez Paramètres de l'application > Paramètres de génération et modifiez-le pour ajouter la section backend (lignes 2 à 7 dans le code ci-dessous) à votre amplify.yml. Après avoir effectué les modifications, choisissez Enregistrer.

    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/**/*

    Faites défiler la page vers le bas jusqu'à Paramètres d'image de génération et choisissez Modifier. Sélectionnez le menu déroulant Ajouter un remplacement de version de package et sélectionnez CLI Amplify. La version par défaut doit être la plus récente, comme indiqué sur l'image.

    Ensuite, mettez à jour votre branche frontend pour qu'elle pointe vers l'environnement principal que vous venez de créer. Sous le nom de la branche, choisissez Modifier, puis pointez votre branche principale vers le backend intermédiaire que vous venez de créer. Choisissez Enregistrer.

    Si le message Please set up a service role… (Veuillez configurer une fonction du service…) s'affiche, suivez les instructions fournies avant de continuer à configurer et à associer un rôle de service à votre application.

  • Revenez maintenant à la fenêtre de votre terminal local et déployez les modifications sur GitHub pour commencer une nouvelle version dans la console Amplify :

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

Conclusion

Vous venez d'ajouter l'authentification des utilisateurs à votre application avec seulement quelques lignes de code. Dans le module suivant, nous allons ajouter une API à votre application.

Cette page vous a-t-elle été utile ?

Ajouter une API et une base de données