Skip to main content
El SDK de Auth0 para PHP proporciona una clase Auth0\SDK\Token que se utiliza para procesar  (JWT). Te permite decodificar, validar y verificar tokens para que tu aplicación los use. Puedes encontrar más información sobre los JWT y sobre cómo crearlos y decodificarlos en jwt.io. La clase puede procesar tanto tokens HS256 como RS256. Ambos tipos requieren que el algoritmo y las audiencias válidas se configuren en el SDK antes de procesarlos. Los tokens HS256 requieren que se configure el . Los tokens RS256 requieren un emisor autorizado, que se utiliza para obtener un archivo JWKs durante el proceso de decodificación. (Más información sobre los algoritmos de firma aquí.)

Requisitos previos

La documentación siguiente asume que seguiste los pasos de la guía de introducción a PHP y parte del código proporcionado allí.

Ejemplo de uso

A continuación se muestra un ejemplo de un pequeño procesador de JSON Web Token basado en URL, construido sobre la clase Token del SDK.
<?php

// Importa el Autoloader de Composer para que las clases del SDK sean accesibles:
require 'vendor/autoload.php';

// Carga las variables de entorno desde el archivo .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.');
}

// El SDK de Auth0 incluye una utilidad de procesamiento de tokens que usaremos para esto:
$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);

// Verifica el token: (Lanzará una \Auth0\SDK\Exception\InvalidTokenException si la verificación falla.)
$token->verify();

// Valida las claims del token: (Lanzará una \Auth0\SDK\Exception\InvalidTokenException si la validación falla.)
$token->validate();

echo '<pre>';
print_r($token->toArray(), true);
echo '</pre>';
Tanto verify() como validate() ofrecen varios argumentos de opción que pueden usarse para personalizar su comportamiento, incluida la validación de reclamaciones de , la restricción del tiempo máximo transcurrido desde el auth_time de un token, la tolerancia de reloj leeway para las comprobaciones de tiempo, entre otras opciones. Estos métodos están completamente comentados, por lo que puede revisar estas opciones ya sea en el código fuente o en el IDE que prefiera.

Más información