> ## Documentation Index
> Fetch the complete documentation index at: https://docs-staging-fix-docs-5525.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# PHP : valider les jetons Web JSON (JWT) avec Auth0-PHP

> Intégrez la validation des jetons Web JSON dans votre application PHP afin d’analyser, vérifier et valider les jetons.

La trousse SDK Auth0 pour PHP fournit une classe  `Auth0\SDK\Token`, utilisée pour le traitement des jetons Web JSON. Elle vous permet de décoder, de valider et de vérifier les jetons que votre application peut utiliser. Pour en savoir plus sur les jetons Web JSON et savoir comment les créer et les décoder, consultez [jwt.io](https://jwt.io/).

La classe peut traiter des jetons HS256 et RS256 Tous deux requièrent un algorithme et des publics valides pour pouvoir être configurés avec la trousse SDK avant tout traitement. Le secret client est nécessaire pour configurer les jetons HS256. Ces derniers ont aussi besoin d’un émetteur autorisé, lequel est utilisé pour récupérer le fichier des clés Web JSON lors du processus de décodage. ([Plus d’informations sur les algorithmes de signature ici](https://auth0.com/blog/navigating-rs256-and-jwks/).)

## Prérequis

La documentation ci-dessous part du principe que vous avez suivi les étapes du [guide de démarrage de PHP](/docs/fr-ca/libraries/auth0-php), et que vous avez utilisé le code fourni.

## Exemple d’utilisation

Voici l’exemple d’un petit processus de traitement des jetons Web JSON basé sur URL et la classe `Token` de la trousse SDK.

```php lines theme={null}
<?php

// Import the Composer Autoloader to make the SDK classes accessible:
require 'vendor/autoload.php';

// Load our environment variables from the .env file:
(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.');
}

// The Auth0 SDK includes a helpful token processing utility we'll leverage for this:
$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);

// Verify the token: (This will throw an \Auth0\SDK\Exception\InvalidTokenException if verification fails.)
$token->verify();

// Validate the token claims: (This will throw an \Auth0\SDK\Exception\InvalidTokenException if validation fails.)
$token->validate();

echo '<pre>';
print_r($token->toArray(), true);
echo '</pre>';
```

`verify()` et `validate()` offrent tous deux un certain nombre d’options pour personnaliser le comportement des jetons, y compris la validation des demandes de nombres aléatoires, la restriction du temps maximum à partir de l’`auth_time` d’un jeton, la `marge` de tolérance de l’horloge pour les vérifications de temps, et plus encore. Ces méthodes sont commentées en détail pour permettre l’examen de ces options soit au moyen du code source, soit au moyen de l’environnement de développement intégré de votre choix.

## En savoir plus

* [PHP : Connexion, déconnexion et restitution des profils utilisateurs avec Auth0-PHP](/docs/fr-ca/libraries/auth0-php/auth0-php-basic-use)
* [PHP : Utiliser l’Authentication API avec Auth0-PHP](/docs/fr-ca/libraries/auth0-php/using-the-authentication-api-with-auth0-php)
* [PHP : Utiliser Management API avec Auth0-PHP](/docs/fr-ca/libraries/auth0-php/using-the-management-api-with-auth0-php)
* [PHP : Dépannage de votre intégration Auth0-PHP](/docs/fr-ca/libraries/auth0-php/troubleshoot-auth0-php-library)
