Par Evan Sims
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

- 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
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
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
Installation du client HTTP et des fabriques de messages
Installation du SDK PHP
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
.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 :
index.php, et configurons une instance de l’Auth0 PHP SDK pour notre application d’exemple :
Configurer les routes de votre application
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 :
Vérifier s’il existe une session
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.
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
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
/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
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 /.