- Servie au client par votre propre backend.
- A le même domaine que votre backend.
- Effectue des appels d’API à votre backend qui nécessitent une authentification.
Fonctionnement

- L’utilisateur accède à une route protégée dans le navigateur, ou effectue une action qui exige le déclenchement d’une étape d’authentification (comme cliquer sur un bouton de connexion)
- Le client dans le navigateur redirige vers une route
/loginsur le backend, ou vers la route protégée, selon l’action effectuée par l’utilisateur - Le backend construit une requête vers le point de terminaison
/authorizedu serveur d’autorisation et y redirige le navigateur - L’utilisateur est invité à s’authentifier à l’aide de la méthode présentée par le serveur d’autorisation
- Le serveur d’autorisation envoie les jetons par POST à l’URI de redirection sous la forme d’un formulaire encodé dans l’URL. Le backend peut récupérer ces jetons en analysant les données du corps de la requête.

Exemple
Prérequis
- Pour suivre ce tutoriel, assurez-vous d’avoir installé la dernière version de Node.
-
Une fois Node installé, téléchargez ou clonez le code source et ouvrez le dossier du projet dans une fenêtre de terminal.
-
La branche
masterreprésente l’état de l’application avant l’ajout de toute authentification. Si vous voulez consulter la version finale de l’application, basculez vers la branchewith-oidc:git checkout with-oidc
Initialiser l’application Node.js
npm install dans votre terminal. Pour lancer l’application, utilisez npm run dev. Cette commande démarre le serveur Express. Ouvrez http://localhost:3000 dans votre navigateur pour afficher l’application.
Le serveur de développement utilise nodemon, qui redémarre automatiquement dès qu’il détecte des modifications de fichiers.
Explorez l’application

Configurer l’environnement
express-openid-connect nécessite la présence de certaines variables d’environnement. Pour cette application, ces variables peuvent être définies dans un fichier .env. Créez un fichier .env à la racine du répertoire du projet et ajoutez-y ce qui suit :
.env
Configurer l’application dans Auth0
- Accédez à Auth0 Dashboard > Applications > Applications, puis cliquez sur Create Application.
- Donnez un nom à votre nouvelle application, sélectionnez Regular Web Applications, puis cliquez sur Create
-
Dans les Settings de votre nouvelle application, ajoutez
http:/localhost:3000/callbackà Allowed Callback URLs. -
Ajoutez
http:/localhost:3000à Allowed Logout URLs. - Cliquez sur Save Changes.
- Accédez à Auth0 Dashboard > Authentication > Social et configurez quelques connexions sociales. Activez-les pour votre application dans les options Application de l’onglet Connections. Cet exemple utilise une base de données avec nom d’utilisateur et mot de passe, Facebook, Google et X.
- Dans l’écran Settings, notez les paramètres de Domaine et d’ID client affichés en haut.
-
Deux valeurs doivent être configurées dans l’application. Rouvrez le fichier
.envet définissez ces valeurs :
Exécutez l’application
- Une fois la configuration du serveur et de l’environnement terminée, repérez la fenêtre de navigateur où l’application est ouverte. Si vous avez fermé le navigateur et arrêté le serveur, exécutez la commande suivante dans le terminal pour redémarrer l’application :
npm run dev - Ouvrez
http://localhost:3000dans le navigateur. Du point de vue de l’interface utilisateur, l’application devrait avoir la même apparence. Toutefois, cette fois-ci, lorsque vous cliquez sur le bouton Call API, vous devriez voir un avertissement indiquant que l’utilisateur n’est pas connecté. Notez aussi que vous ne voyez pas le message “Hello, World” comme auparavant, puisque l’appel à l’API a été rejeté. - Cliquez sur Log in now pour vous connecter. Une fois authentifié, vous retournerez à l’application et verrez une interface mise à jour qui reflète votre nouvel état de connexion. Vous devriez pouvoir cliquer de nouveau sur le bouton Call API pour lancer un appel à l’API vers le serveur, et cette fois, il fonctionnera.
- Cliquez sur le lien Profile en haut de la page pour afficher les informations de l’utilisateur récupérées à partir de l’ID Token.