Skip to main content
Le SDK PHP d’Auth0 fournit une classe Auth0\SDK\Token utilisée pour traiter les  (JWT). Elle vous permet de décoder, de valider et de vérifier les jetons pour les utiliser dans votre application. Vous trouverez plus d’information sur les JWT et sur la façon de les créer et de les décoder sur jwt.io. La classe peut traiter à la fois les jetons HS256 et RS256. Les deux types exigent que l’algorithme et les audiences valides soient configurés dans le SDK avant le traitement. Les jetons HS256 exigent que le soit configuré. Les jetons RS256 exigent un émetteur autorisé, utilisé pour récupérer un fichier JWKs pendant le processus de décodage. (En savoir plus sur les algorithmes de signature ici.)

Prérequis

La documentation ci-dessous suppose que vous avez suivi les étapes du guide de démarrage de PHP et que vous reprenez à partir du code qui y est fourni.

Exemple d’utilisation

Voici un exemple de petit processeur de JSON Web Token utilisant des URL, fondé sur la classe Token du SDK.
<?php

// Importer le chargeur automatique Composer pour rendre les classes du SDK accessibles :
require 'vendor/autoload.php';

// Charger les variables d'environnement depuis le fichier .env :
(Dotenv\Dotenv::createImmutable(__DIR__))->load();

$token = filter_var($_GET['token'] ?? null, FILTER_UNSAFE_RAW, FILTER_NULL_ON_FAILURE);
$algorithm = filter_var($_GET['algorithm'] ?? 'HS256', FILTER_UNSAFE_RAW, FILTER_NULL_ON_FAILURE);

if ($token === null) {
    die('No `token` request parameter.');
}

if (! in_array($algorithm, ['HS256', 'RS256'])) {
    die('Invalid `algorithm` supplied.');
}

// Le SDK Auth0 inclut un utilitaire pratique de traitement de jetons que nous utiliserons ici :
$token = new \Auth0\SDK\Token([
    'domain' => $env['AUTH0_DOMAIN'],
    'clientId' => $env['AUTH0_CLIENT_ID'],
    'clientSecret' => $env['AUTH0_CLIENT_SECRET'],
    'tokenAlgorithm' => $algorithm
], $token, \Auth0\SDK\Token::TYPE_ID_TOKEN);

// Vérifier le jeton : (Cela lèvera une \Auth0\SDK\Exception\InvalidTokenException si la vérification échoue.)
$token->verify();

// Valider les revendications du jeton : (Cela lèvera une \Auth0\SDK\Exception\InvalidTokenException si la validation échoue.)
$token->validate();

echo '<pre>';
print_r($token->toArray(), true);
echo '</pre>';
verify() et validate() offrent tous deux plusieurs options permettant de personnaliser leur comportement, notamment la validation des revendications , la limitation du délai maximal écoulé depuis le auth_time d’un jeton, la marge de tolérance d’horloge leeway pour les vérifications temporelles, et plus encore. Ces méthodes sont entièrement commentées; vous pouvez donc consulter ces options directement dans le code source ou dans l’EDI de votre choix.

En savoir plus