Saltar al contenido

Funciones JWT

Introducción

Token web JSON (JWT) permiten la creación, verificación y decodificación de JWT. Para obtener más información sobre la especificación JWT, consulte IETF RFC 7519: JSON Web Token (JWT).

Importante

Las funciones JWT requieren la versión del agente 11.26 o posterior.

CreateJwtToken

Declaración

string CreateJwtToken(string header, string payload[, string private_key, string public_key])

Sintaxis

CreateJwtToken(<header>, <payload>[, <private_key>, <public_key>])

Parámetros Requeridos

  • header: Una cadena JSON que contiene los valores de encabezado esperados para el alg, typ, cty, y kid llaves. Estos pares clave-valor no distinguen entre mayúsculas y minúsculas. Se ignorarán todos los demás pares clave-valor. Los algoritmos admitidos incluyen HS256, HS384, HS512, PS256, PS384, PS512, RS256, RS384, RS512, ES256, ES256K, ES384, ES512, EdDSA, y None. Si un valor para alg no se reconoce, se establecerá en None. Si un valor para typ no se reconoce, se establecerá en JWT.
  • payload: Una cadena JSON que contiene los valores de carga esperados que representan reclamaciones JWT. Todos los pares clave-valor se tratarán como una reclamación válida. Si afirmaciones como aud admiten múltiples valores, se pueden definir como una cadena delimitada por comas, por ejemplo audience1, audience2, audience3. Las reclamaciones registradas admitidas incluyen iss, sub, aud, exp, nbf, iat, y jti. Para exp, nbf, y iat Para ser tratados como reclamaciones registradas, deben establecerse utilizando un valor entero (1234567890, no "1234567890").

Parámetros Opcionales

  • private_key: Una clave privada de cadena para el algoritmo especificado en el header. Si el None Se utiliza el algoritmo, este campo se ignora.
  • public_key: Una clave pública de cadena para el algoritmo especificado en el header. Si el None, HS256, HS384, o HS512 Se utilizan algoritmos, este campo se ignora.

Descripción

Crea un JWT utilizando la información proporcionada. En caso de éxito, se devuelve una cadena que representa el token recién creado; de lo contrario, se devuelven los mensajes de error.

Sólo los dos primeros parámetros son necesarios para todos los casos. Los parámetros restantes son situacionales y pueden ser necesarios según el algoritmo JWT elegido.

Importante

Esta función requiere la versión del agente 11.26 o posterior.

Ejemplos

Example Using None
// Define the JWT header:
$header = '{"alg": "None", "typ": "JWT"}';

// Define the JWT payload:
$payload = '{"iat": 1234567890, "name": "Example", "test": "Test"}';

CreateJwtToken($header, $payload, "", "");
Example Using RS256
// Define the JWT header:
$header = '{"alg": "RS256", "typ": "JWT"}';

// Define the JWT payload:
$payload = '{"iat": 1234567890, "name": "Example", "test": "Test"}';

$privateKey = "-----BEGIN RSA PRIVATE KEY-----...";
$publicKey = "-----BEGIN PUBLIC KEY-----...";

CreateJwtToken($header, $payload, $privateKey, $publicKey);

VerifyJwt

Declaración

bool VerifyJwt(string token)

Sintaxis

VerifyJwt(<token>)

Parámetros Requeridos

  • token: Una cadena que representa el JWT.

Descripción

Comprueba si el token proporcionado es un token JWT válido y devuelve un valor booleano (true o false) según el resultado. Esta función verifica únicamente el formato del token, consulte VerifyJwtClaims para una verificación de reclamaciones más completa.

Importante

Esta función requiere la versión del agente 11.26 o posterior.

Ejemplos

// Check if a token is in JWT format:
VerifyJwt("AxE9qm4aTZiXvA2G8sblAxjeL...");

VerifyJwtClaims

Declaración

bool VerifyJwtClaims(string token, string algorithm, string key[, string claims])

Sintaxis

VerifyJwtClaims(<token>, <algorithm>, <key>[, <claims>])

Parámetros Requeridos

  • token: Una cadena que representa el JWT.
  • algorithm: El algoritmo utilizado para la verificación de reclamos.
  • key: La clave secreta utilizada para la verificación de reclamos.

Parámetros Opcionales

  • claims: Una cadena JSON que contiene las afirmaciones que se van a verificar.

Descripción

Verifica si las afirmaciones del token proporcionado son válidas (no modificadas) dado el algoritmo proporcionado y la clave secreta y devuelve un valor booleano (true o false) según el resultado. Si el token en sí no es válido, false Se devuelve sin comprobar las reclamaciones. Si no se proporcionan reclamaciones, esta función actúa como VerifyJwt funcionan, ignorando el algoritmo y la clave secreta.

Precaución

Los valores de las reclamaciones proporcionados para la verificación deben coincidir con los tipos de datos originales utilizados. Por ejemplo, "iat": "1234567890" no es igual a "iat": 1234567890.

Si utiliza la versión 11.26 del agente, VerifyJwtClaims generará errores si claims queda vacío. Como solución alternativa, ingrese "{}" para claims.

Importante

Esta función requiere la versión del agente 11.26 o posterior.

Ejemplos

// Verify JWT claims:
VerifyJwtClaims("AxE9qm4aTZiXvA2G8sblAxjeL...", "RS256", "Secret", '{"iat": 1234567890, "name": "Example", "test": "Test"}');
// Empty claims workaround:
VerifyJwtClaims("AxE9qm4aTZiXvA2G8sblAxjeL...", "RS256", "Secret", "{}");

DecodeJwtToken

Declaración

string DecodeJwtToken(string token)

Sintaxis

DecodeJwtToken(<token>)

Parámetros Requeridos

  • token: Una cadena que representa el JWT.

Descripción

Decodifica el token suministrado para recuperar sus reclamos. En caso de éxito, se devuelve una cadena que contiene las reclamaciones decodificadas. Si el token no es válido, se devuelve una cadena vacía. De lo contrario, se devuelven los mensajes de error.

Importante

Esta función requiere la versión del agente 11.26 o posterior.

Ejemplos

// Decode a JWT token:
DecodeJwtToken("AxE9qm4aTZiXvA2G8sblAxjeL...");

GetJwtHeader

Declaración

string GetJwtHeader(string token)

Sintaxis

GetJwtHeader(<token>)

Parámetros Requeridos

  • token: Una cadena que representa el JWT.

Descripción

Recupera el encabezado del JWT. En caso de éxito, se devuelve una cadena que contiene el encabezado. Si el token no es válido, se devuelve una cadena vacía.

Importante

Esta función requiere la versión del agente 11.26 o posterior.

Ejemplos

// Retrieve a JWT header:
GetJwtHeader("AxE9qm4aTZiXvA2G8sblAxjeL...");

GetJwtPayload

Declaración

string GetJwtPayload(string token)

Sintaxis

GetJwtPayload(<token>)

Parámetros Requeridos

  • token: Una cadena que representa el JWT.

Descripción

Recupera la carga útil del JWT. En caso de éxito, se devuelve una cadena que contiene la carga útil. Si el token no es válido, se devuelve una cadena vacía.

Importante

Esta función requiere la versión del agente 11.26 o posterior.

Ejemplos

// Retrieve a JWT payload:
GetJwtPayload("AxE9qm4aTZiXvA2G8sblAxjeL...");

GetJwtSignature

Declaración

string GetJwtSignature(string token)

Sintaxis

GetJwtSignature(<token>)

Parámetros Requeridos

  • token: Una cadena que representa el JWT.

Descripción

Recupera la firma del JWT. En caso de éxito, se devuelve una cadena que contiene la firma. Si el token no es válido, se devuelve una cadena vacía.

Importante

Esta función requiere la versión del agente 11.26 o posterior.

Ejemplos

// Retrieve a JWT signature:
GetJwtSignature("AxE9qm4aTZiXvA2G8sblAxjeL...");