Funções JWT
Introdução
Token Web JSON (JWT) permitem a criação, verificação e decodificação de JWTs. Para obter mais informações sobre a especificação JWT, consulte IETF RFC 7519: JSON Web Token (JWT).
Importante
As funções JWT requerem a versão 11.26 ou posterior do agente.
CreateJwtToken
Declaração
string CreateJwtToken(string header, string payload[, string private_key, string public_key])
Sintaxe
CreateJwtToken(<header>, <payload>[, <private_key>, <public_key>])
Parâmetros Obrigatórios
header
: Uma string JSON contendo quaisquer valores de cabeçalho esperados para oalg
,typ
,cty
, ekid
chaves. Esses pares de valores-chave não diferenciam maiúsculas de minúsculas. Todos os outros pares de valores-chave serão ignorados. Algoritmos suportados incluemHS256
,HS384
,HS512
,PS256
,PS384
,PS512
,RS256
,RS384
,RS512
,ES256
,ES256K
,ES384
,ES512
,EdDSA
, eNone
. Se um valor paraalg
não for reconhecido, será definido comoNone
. Se um valor paratyp
não for reconhecido, será definido comoJWT
.payload
: Uma string JSON contendo quaisquer valores de payload esperados que representam declarações JWT. Todos os pares de valores-chave serão tratados como uma declaração válida. Se afirmações comoaud
suportam vários valores, eles podem ser definidos como uma string delimitada por vírgula, por exemploaudience1, audience2, audience3
. As reivindicações registradas suportadas incluemiss
,sub
,aud
,exp
,nbf
,iat
, ejti
. Paraexp
,nbf
, eiat
para serem tratadas como reclamações registradas, elas devem ser definidas usando um valor inteiro (1234567890
, não"1234567890"
).
Parâmetros Opcionais
private_key
: Uma chave privada de string para o algoritmo especificado noheader
. Se oNone
algoritmo é usado, este campo é ignorado.public_key
: Uma chave pública de string para o algoritmo especificado noheader
. Se oNone
,HS256
,HS384
, ouHS512
algoritmos são usados, este campo é ignorado.
Descrição
Cria um JWT usando as informações fornecidas. Em caso de sucesso, uma string representando o token recém-criado é retornada; caso contrário, quaisquer mensagens de erro serão retornadas.
Apenas os dois primeiros parâmetros são necessários para todos os casos. Os demais parâmetros são situacionais e podem ser exigidos com base no algoritmo JWT escolhido.
Importante
Esta função requer a versão 11.26 ou posterior do agente.
Exemplos
// Define the JWT header:
$header = '{"alg": "None", "typ": "JWT"}';
// Define the JWT payload:
$payload = '{"iat": 1234567890, "name": "Example", "test": "Test"}';
CreateJwtToken($header, $payload, "", "");
// 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
Declaração
bool VerifyJwt(string token)
Sintaxe
VerifyJwt(<token>)
Parâmetros Obrigatórios
token
: Uma string que representa o JWT.
Descrição
Verifica se o token fornecido é um token JWT válido e retorna um booleano (true
ou false
) com base no resultado. Esta função verifica apenas a formatação do token, consulte VerifyJwtClaims
para uma verificação de sinistros mais abrangente.
Importante
Esta função requer a versão 11.26 ou posterior do agente.
Exemplos
// Check if a token is in JWT format:
VerifyJwt("AxE9qm4aTZiXvA2G8sblAxjeL...");
VerifyJwtClaims
Declaração
bool VerifyJwtClaims(string token, string algorithm, string key[, string claims])
Sintaxe
VerifyJwtClaims(<token>, <algorithm>, <key>[, <claims>])
Parâmetros Obrigatórios
token
: Uma string que representa o JWT.algorithm
: O algoritmo usado para verificação de sinistros.key
: A chave secreta usada para verificação de reivindicações.
Parâmetros Opcionais
claims
: Uma string JSON contendo as declarações a serem verificadas.
Descrição
Verifica se as declarações do token fornecido são válidas (não modificadas) de acordo com o algoritmo e a chave secreta fornecidos e retorna um booleano (true
ou false
) com base no resultado. Se o token em si não for válido, false
é devolvido sem verificar as reivindicações. Se nenhuma declaração for fornecida, esta função agirá como o VerifyJwt
função, ignorando o algoritmo e a chave secreta.
Cuidado
Os valores de declaração fornecidos para verificação devem corresponder aos tipos de dados originais usados. Por exemplo, "iat": "1234567890"
não é igual a "iat": 1234567890
.
Se estiver usando a versão 11.26 do agente, VerifyJwtClaims
irá gerar erros se claims
fica vazio. Como solução alternativa, insira "{}"
para claims
.
Importante
Esta função requer a versão 11.26 ou posterior do agente.
Exemplos
// Verify JWT claims:
VerifyJwtClaims("AxE9qm4aTZiXvA2G8sblAxjeL...", "RS256", "Secret", '{"iat": 1234567890, "name": "Example", "test": "Test"}');
// Empty claims workaround:
VerifyJwtClaims("AxE9qm4aTZiXvA2G8sblAxjeL...", "RS256", "Secret", "{}");
DecodeJwtToken
Declaração
string DecodeJwtToken(string token)
Sintaxe
DecodeJwtToken(<token>)
Parâmetros Obrigatórios
token
: Uma string que representa o JWT.
Descrição
Decodifica o token fornecido para recuperar suas declarações. Em caso de sucesso, uma string contendo as declarações decodificadas é retornada. Se o token não for válido, uma string vazia será retornada. Caso contrário, quaisquer mensagens de erro serão retornadas.
Importante
Esta função requer a versão 11.26 ou posterior do agente.
Exemplos
// Decode a JWT token:
DecodeJwtToken("AxE9qm4aTZiXvA2G8sblAxjeL...");
GetJwtHeader
Declaração
string GetJwtHeader(string token)
Sintaxe
GetJwtHeader(<token>)
Parâmetros Obrigatórios
token
: Uma string que representa o JWT.
Descrição
Recupera o cabeçalho do JWT. Em caso de sucesso, uma string contendo o cabeçalho é retornada. Se o token não for válido, uma string vazia será retornada.
Importante
Esta função requer a versão 11.26 ou posterior do agente.
Exemplos
// Retrieve a JWT header:
GetJwtHeader("AxE9qm4aTZiXvA2G8sblAxjeL...");
GetJwtPayload
Declaração
string GetJwtPayload(string token)
Sintaxe
GetJwtPayload(<token>)
Parâmetros Obrigatórios
token
: Uma string que representa o JWT.
Descrição
Recupera a payload do JWT. Em caso de sucesso, uma string contendo a payload é retornada. Se o token não for válido, uma string vazia será retornada.
Importante
Esta função requer a versão 11.26 ou posterior do agente.
Exemplos
// Retrieve a JWT payload:
GetJwtPayload("AxE9qm4aTZiXvA2G8sblAxjeL...");
GetJwtSignature
Declaração
string GetJwtSignature(string token)
Sintaxe
GetJwtSignature(<token>)
Parâmetros Obrigatórios
token
: Uma string que representa o JWT.
Descrição
Recupera a assinatura do JWT. Em caso de sucesso, uma string contendo a assinatura é retornada. Se o token não for válido, uma string vazia será retornada.
Importante
Esta função requer a versão 11.26 ou posterior do agente.
Exemplos
// Retrieve a JWT signature:
GetJwtSignature("AxE9qm4aTZiXvA2G8sblAxjeL...");