Skip to main content
Par Evan Sims
Ce guide explique comment intégrer Auth0 à une application PHP à l’aide de l’Auth0 PHP SDK. Nous vous recommandons de vous connecter pour suivre ce Quickstart avec des exemples configurés pour votre compte.
Vous débutez avec Auth? Découvrez comment fonctionne Auth0, comment il s’intègre aux Regular Web Applications et quel protocole il utilise.

Configurer Auth0

Obtenez les clés de votre application

Lorsque vous vous êtes inscrit à Auth0, une nouvelle application a été créée pour vous, à moins que vous n’en ayez créé une vous-même. Vous aurez besoin de certaines informations sur cette application pour communiquer avec Auth0. Vous pouvez les trouver dans la section Application Settings du Dashboard Auth0.
App Dashboard
Vous avez besoin des renseignements suivants :
  • Domain
  • Client ID
  • Client Secret
Si vous téléchargez l’exemple au haut de cette page, ces renseignements seront déjà remplis pour vous.

Configurer les URL de rappel

Une URL de rappel est une URL de votre application vers laquelle Auth0 redirige l’utilisateur après son authentification. L’URL de rappel de votre application doit être ajoutée au champ Allowed Callback URLs dans les Application Settings. Si ce champ n’est pas configuré, les utilisateurs ne pourront pas se connecter à l’application et verront s’afficher une erreur.
Si vous suivez l’exemple de projet que vous avez téléchargé en haut de cette page, l’URL de rappel à ajouter au champ Allowed Callback URLs est http://127.0.0.1:3000/.

Configurer les URL de déconnexion

Une URL de déconnexion est une URL de votre application vers laquelle Auth0 peut rediriger l’utilisateur une fois qu’il est déconnecté du serveur d’autorisation. Cette URL est précisée dans le paramètre de requête returnTo. L’URL de déconnexion de votre application doit être ajoutée au champ Allowed Logout URLs dans les Application Settings. Si ce champ n’est pas défini, les utilisateurs ne pourront pas se déconnecter de l’application et une erreur s’affichera.
Si vous suivez l’exemple de projet téléchargé en haut de cette page, l’URL de déconnexion à ajouter au champ Allowed Logout URLs est http://127.0.0.1:3000.

Intégrez votre application PHP

Créons un exemple d’application qui permet d’authentifier un utilisateur dans une application PHP. Nous adopterons ici une approche simple, adaptée au format écrit. Cela dit, consultez l’application Quickstart sur GitHub pour voir un exemple plus complet.

Installation du client HTTP et des fabriques de messages

Le SDK Auth0 PHP prend en charge plusieurs normes PHP-FIG, offrant des options d’interopérabilité avec votre architecture. Deux d’entre elles sont particulièrement importantes : PSR-17 et PSR-18. Ces normes vous permettent d’intégrer les composants réseau de votre choix pour gérer les messages et les requêtes. Vous devrez installer des bibliothèques compatibles dans votre projet pour que le SDK puisse les utiliser. La bibliothèque réseau la plus répandue pour PHP est Guzzle, bien qu’il en existe plusieurs autres dans la communauté PHP. Utilisons Guzzle pour cet exemple d’application. Encore une fois, à partir du répertoire de votre projet, exécutez la commande shell suivante :

Installation du SDK PHP

L’Auth0 PHP SDK nécessite Composer, un outil de gestion des dépendances pour PHP. Composer vous permet de déclarer les bibliothèques dont votre projet a besoin et les installe pour vous. Assurez-vous que Composer est installé et accessible depuis votre terminal avant de continuer. Exécutez la commande shell suivante dans le répertoire de votre projet pour installer l’Auth0 PHP SDK :
Cela créera un dossier vendor dans votre projet et téléchargera toutes les dépendances nécessaires pour utiliser l’Auth0 PHP SDK. Cela créera également un fichier vendor/autoload.php, utilisé dans l’exemple pour charger toutes les classes nécessaires au fonctionnement de votre application. Il est important d’inclure ce fichier d’autoload dans votre projet pour que le SDK fonctionne.

Configuration du SDK

Pour commencer, créons un fichier .env à la racine du répertoire de votre projet pour y stocker la configuration de notre application exemple et renseigner les variables d’environnement : Comme PHP n’est pas capable de lire notre fichier .env à lui seul, nous allons installer une bibliothèque pour nous aider. Même si, pour les besoins de notre application d’exemple, nous utiliserons une bibliothèque en particulier, dans une application réelle, n’importe quel chargeur « dotenv » fera l’affaire. Depuis le répertoire de notre projet, exécutons la commande shell suivante pour installer la bibliothèque :
Ensuite, créons le fichier source PHP que nous utiliserons pour ces exemples de code, index.php, et configurons une instance de l’Auth0 PHP SDK pour notre application d’exemple :

Configurer les routes de votre application

Les applications PHP modernes utilisent un modèle de routage pour acheminer les requêtes HTTP entrantes vers le code chargé de les traiter, ce qui permet de déterminer ce qui doit se produire lorsque des utilisateurs visitent une “page” précise de notre application. Il n’y a pas une seule bonne façon d’implémenter le routage dans votre application, et il existe de nombreuses bibliothèques pour le faire. Pour les besoins de notre exemple d’application, nous utiliserons une bibliothèque en particulier, mais dans une application réelle, n’hésitez pas à choisir celle qui vous convient. Depuis le répertoire de notre projet, exécutons la commande shell suivante pour installer la bibliothèque de routage :
Ensuite, rouvrons notre index.php et donnons vie à notre application. Commencez par importer la bibliothèque de routage et définir, sous forme de constantes nommées, les URL complètes des routes de notre application d’exemple pour plus de commodité, car nous devrons nous y référer à quelques reprises dans l’ensemble de l’application :
Nous pouvons maintenant passer à l’ajout de la logique de routage de notre application, ainsi que des intégrations du SDK :

Vérifier s’il existe une session

L’Auth0 PHP SDK offre une méthode pratique pour vérifier si notre utilisateur est authentifié et récupérer son profil, getCredentials(). Ajoutons-la à notre route d’index pour afficher le profil de l’utilisateur s’il est connecté ou indiquer qu’il doit se connecter.
Nous pouvons accéder à toutes les propriétés du profil de notre utilisateur à partir de la propriété de réponse user, qui est un tableau. Par exemple, nous pouvons récupérer le nickname de l’utilisateur avec $session->user<a href="https://auth0.com/docs/users/user-profile-structure" target="_blank" rel="noreferrer">nickname, ou son adresse courriel à partir de $session->useremail. La structure correspond à un profil utilisateur normalisé, sur lequel vous pouvez en apprendre davantage ici. Il est important de noter que le contenu du profil utilisateur varie selon le ou les fournisseurs d’identité sociale que vous utilisez. Vous ne devriez donc jamais présumer qu’une valeur donnée sera toujours présente dans la logique de votre application. Utilisez des constructions du langage PHP comme isset ou l’opérateur de coalescence de null pour gérer élégamment la présence ou l’absence d’une valeur, par exemple :

Connexion

Créons maintenant notre route /login, qui utilisera la méthode login() de l’Auth0 PHP SDK pour établir la session de l’utilisateur et renvoyer une URL personnalisée vers la Universal Login Page d’Auth0 afin de permettre à cet utilisateur de se connecter.

Traitement du rappel d’authentification

Une fois que nos utilisateurs reviennent après s’être authentifiés au moyen de la Universal Login Page d’Auth0, ils sont redirigés vers la route de rappel de notre application d’exemple, /callback, que nous allons traiter à cette étape. Quand Auth0 nous renvoie les utilisateurs, il inclut quelques paramètres essentiels dans la chaîne de requête de la requête HTTP. La méthode exchange() de l’Auth0 PHP SDK s’en charge, donc il est simple de terminer notre flux d’authentification :

Déconnexion

Enfin, gérons correctement la déconnexion de nos utilisateurs. La méthode logout() de l’Auth0 PHP SDK s’occupe d’effacer les cookies de session de notre application exemple, de rediriger l’utilisateur vers le point de terminaison /logout d’Auth0 (ce qui met fin à la couche de session Auth0 ainsi qu’à toute couche de session du fournisseur d’identité), puis de ramener l’utilisateur vers notre route d’index /.

Lancez votre application !

Enfin, nous devons configurer notre middleware de routage pour qu’il achemine réellement les requêtes :
Ça y est ! Vous êtes prêt à lancer votre nouvelle application ; encore une fois, à partir du répertoire de votre projet, exécutez la commande shell suivante :
Ouvrez http://127.0.0.1:3000 dans votre navigateur et essayez-le.