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

# Valider les JWT (JSON Web Tokens)

> Utilisez la classe Token du SDK Auth0-PHP pour analyser, vérifier et valider les JSON Web Tokens HS256 et RS256 dans votre application PHP.

export const ReleaseStageNotice = ({feature, stage, plans, contact, terms}) => {
  const stageTextMap = {
    "beta": "bêta",
    "ea": "Accès anticipé"
  };
  const stageText = stageTextMap[stage] || "une phase de lancement du produit";
  const prsLink = "/docs/troubleshoot/product-lifecycle/product-release-stages";
  const linkify = (text, url) => {
    return <a href={url} target="_blank" rel="noreferrer" class="link">{text}</a>;
  };
  const includeDetails = (plans, contact, terms) => {
    const hasDetails = terms || plans || contact;
    if (!hasDetails) return null;
    return <span data-as="p">
            {plans && <>Cette fonctionnalité est offerte avec les forfaits {linkify(`${plans}`, "https://auth0.com/pricing")}. </>}
            {contact && "Pour y participer, communiquez avec " + contact + ". "}
            {terms && <>En utilisant cette fonctionnalité, vous acceptez les conditions applicables de l’essai gratuit énoncées dans le {linkify("Master Subscription Agreement", "https://www.okta.com/legal")} d’Okta.</>}
        </span>;
  };
  return <Warning>
            <span data-as="p">
                <strong>La fonctionnalité {feature} est en {linkify(stageText, prsLink)}.</strong>
            </span>

            {includeDetails(plans, contact, terms)}
        </Warning>;
};

<ReleaseStageNotice feature="Auth0 PHP SDK v9" stage="beta" />

Le SDK Auth0 PHP fournit une classe `Auth0\SDK\Token` utilisée pour traiter les <Tooltip tip="JSON Web Token (JWT) : format standard de jeton d’ID (et souvent de jeton d’accès) utilisé pour représenter des claims de façon sécurisée entre deux parties." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=JSON+Web+Tokens">JSON Web Tokens</Tooltip> (JWT). Elle vous permet de décoder, de valider et de vérifier des jetons à utiliser dans votre application. Vous trouverez plus d’information sur les JWT ainsi que sur la façon de les créer et de les décoder sur [jwt.io](https://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 <Tooltip tip="Client Secret : secret utilisé par un client (application) pour s’authentifier auprès du serveur d’autorisation; il ne devrait être connu que du client et du serveur d’autorisation et doit être suffisamment aléatoire pour ne pas pouvoir être deviné." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=client+secret">client secret</Tooltip> soit configuré. Les jetons RS256 exigent un issuer autorisé, qui sert à récupérer un fichier JWKs pendant le processus de décodage. ([Pour en savoir plus sur les algorithmes de signature, consultez cet article](https://auth0.com/blog/navigating-rs256-and-jwks/).)

<div id="prerequisites">
  ## Prérequis
</div>

La documentation ci-dessous suppose que vous avez suivi les étapes du [guide de démarrage PHP](/docs/fr-ca/libraries/auth0-php) et que vous reprenez à partir du code qui s’y trouve.

<div id="example-usage">
  ## Exemple d’utilisation
</div>

Voici un exemple de petit processeur de JSON Web Token basé sur les URL, à partir de la classe `Token` du SDK.

```php lines expandable theme={null}
<?php

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

// Chargement des 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 jeton que nous utiliserons ici :
$configuration = new \Auth0\SDK\Configuration\SdkConfiguration([
    'strategy'       => \Auth0\SDK\Configuration\SdkConfiguration::STRATEGY_NONE,
    'domain'         => $_ENV['AUTH0_DOMAIN'],
    'clientId'       => $_ENV['AUTH0_CLIENT_ID'],
    'clientSecret'   => $_ENV['AUTH0_CLIENT_SECRET'],
    'tokenAlgorithm' => $algorithm,
]);

$token = new \Auth0\SDK\Token($configuration, $token, \Auth0\SDK\Token::TYPE_ID_TOKEN);

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

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

echo '<pre>';
print_r($token->toArray());
echo '</pre>';
```

Les méthodes `verify()` et `validate()` acceptent toutes deux plusieurs arguments d’options permettant de personnaliser leur comportement, notamment la validation des claims <Tooltip tip="Nonce : nombre arbitraire émis une seule fois dans un protocole d’authentification afin de détecter et de prévenir les attaques par rejeu." cta="Consulter le glossaire" href="/docs/fr-ca/glossary?term=nonce">nonce</Tooltip>, la restriction du délai maximal depuis le `auth_time` d’un jeton, la tolérance d’horloge `leeway` pour les vérifications liées au temps, et bien plus encore. Ces méthodes sont entièrement commentées, ce qui vous permet d’examiner ces options soit dans le code source, soit dans l’IDE de votre choix.

<div id="learn-more">
  ## En savoir plus
</div>

* [Gérer le login, le logout et les profils utilisateur](/docs/fr-ca/libraries/auth0-php/auth0-php-basic-use)
* [Utiliser l’Authentication API](/docs/fr-ca/libraries/auth0-php/using-the-authentication-api-with-auth0-php)
* [Utiliser la Management API](/docs/fr-ca/libraries/auth0-php/using-the-management-api-with-auth0-php)
* [Résoudre les problèmes liés à votre intégration Auth0-PHP](/docs/fr-ca/libraries/auth0-php/troubleshoot-auth0-php-library)
