Skip to main content
Le SDK Auth0-PHP regroupe trois classes principales : Auth0\SDK\Auth0, Auth0\SDK\API\Authentication et Auth0\SDK\API\Management, qui offrent chacune des interfaces pour différentes fonctionnalités des API d’Auth0. Si vous créez une application Web qui doit conserver l’état et assurer le suivi des sessions des utilisateurs, la classe de base Auth0 est celle que vous utiliserez le plus souvent. Elle fournit des méthodes pour gérer des tâches courantes d’authentification et de gestion de session, comme la connexion et la déconnexion, la récupération des informations d’identification de l’utilisateur, la vérification de l’existence d’une session active et le traitement des rappels. Ces tâches sont expliquées ci-dessous. Pour en savoir plus sur ces fonctionnalités et d’autres encore, consultez la page de documentation de l’Authentication API.

Prérequis

La documentation ci-dessous suppose que vous avez suivi les étapes décrites dans Auth0-PHP et que vous partez du code qui y est fourni.

Connexion

Le processus de connexion par défaut dans le SDK PHP utilise un flux de code d’autorisation combiné à la page d’Auth0. En bref, ce processus se déroule comme suit :
  1. Un utilisateur qui demande l’accès est redirigé vers la page Universal Login.
  2. L’utilisateur s’authentifie à l’aide de l’une des nombreuses connexions possibles : sociale (Google, X, Facebook), de base de données (courriel et mot de passe), Passwordless (courriel, SMS) ou d’entreprise (ActiveDirectory, ADFS, Office 365).
  3. L’utilisateur est redirigé vers l’URL de rappel de votre application, ou les données y sont transmises, avec les valeurs code et state en cas de réussite, ou error et error_description dans le cas contraire.
  4. Si l’authentification réussit, la valeur state est validée.
  5. Si state est valide, la valeur code est échangée avec Auth0 contre un ID Token et/ou un Jeton d’accès.
  6. L’identité provenant du jeton d’identité peut servir à créer un compte, à démarrer une session propre à l’application ou à être conservée comme session utilisateur.
Auth0-PHP gère automatiquement la plupart de ces étapes pour vous. Votre application devra :
  1. Appeler Auth0\SDK\Auth0::login() lorsque les utilisateurs doivent se connecter (par exemple : cliquer sur un lien, accéder à du contenu protégé, etc.)
  2. Appeler Auth0\SDK\Auth0::exchange() lorsque les utilisateurs sont redirigés vers votre URL de rappel.
  3. Appeler Auth0\SDK\Auth0::getCredentials() lorsque vous devez vérifier si un utilisateur est connecté et récupérer ses renseignements.
Une implémentation simple de ces étapes ressemble à ceci :
// 👆 Nous poursuivons à partir du guide « Démarrage » lié dans « Prérequis » ci-dessus. Ajoutez ceci au fichier index.php que vous avez créé à cette étape.

// getExchangeParameters() peut être utilisé sur votre URL de rappel pour vérifier que tous les paramètres nécessaires sont présents pour l'échange de code post-authentification.
if ($auth0->getExchangeParameters()) {
    // S'ils sont présents, nous devons effectuer l'échange de code.
    $auth0->exchange();
}

// Vérifier si l'utilisateur est déjà connecté
$session = $auth0->getCredentials();

if ($session === null) {
    // L'utilisateur n'est pas connecté !
    // Rediriger vers la page Universal Login pour l'authentification.
    header("Location: " . $auth0->login());
    exit;
}

// 🎉 À ce stade, nous disposons d'une session utilisateur authentifiée accessible via $session ; la logique de votre application peut se poursuivre à partir d'ici !
echo "Authenticated!";
Enfin, vous devrez ajouter l’URL de votre application au champ “Allowed Callback URLs” de votre application Auth0 sur la page des paramètres. Après cela, le chargement de votre page scriptée devrait :
  1. Vous rediriger immédiatement vers une page de connexion Auth0 pour votre locataire.
  2. Après une connexion réussie au moyen de n’importe quelle connexion, vous rediriger vers votre application.
  3. Afficher une page simple indiquant ‘Authentifié !’.

Profil

Maintenant que nous avons authentifié un utilisateur, nous pouvons exploiter les données de sa session persistante pour, par exemple, afficher son profil.
// 👆 Nous continuons à partir du code ci-dessus. Ajoutez ceci au fichier index.php.

printf(
    '<h1>Hi %s!</h1>
    <p><Frame><img width="100" src="/%s"></Frame></p>
    <p><strong>Last update:</strong> %s</p>
    <p><strong>Contact:</strong> %s %s</p>
    <p><a href="/docs/logout.php">Logout</a></p>',
    isset($session->user['nickname']) ? strip_tags($session->user['nickname']) : '[unknown]',
    isset($session->user['picture']) ? filter_var($session->user['picture'], FILTER_SANITIZE_URL) : 'https://gravatar.com/avatar/',
    isset($session->user['updated_at']) ? date('j/m/Y', strtotime($session->user['updated_at'])) : '[unknown]',
    isset($session->user['email']) ? filter_var($session->user['email'], FILTER_SANITIZE_EMAIL) : '[unknown]',
    ! empty($session->user['email_verified']) ? '✓' : '✗'
);

Déconnexion

En plus de se connecter, nous voulons aussi que les utilisateurs puissent se déconnecter. Lorsqu’ils se déconnectent, ils doivent invalider leur session dans l’application. Pour ce SDK, cela signifie supprimer leurs données persistantes d’utilisateur et de jeton :
// Se déconnecter de l'application.
header("Location: $auth0->logout());
Si vous utilisez l’ (SSO) et souhaitez également mettre fin à sa session Auth0, consultez la section sur la déconnexion du SSO ici. Vous trouverez ici plus d’information sur la déconnexion en général.

En savoir plus