Created
July 23, 2019 00:36
-
-
Save NandoKstroNet/3f009efdfa4fb64612a2c03658b3d878 to your computer and use it in GitHub Desktop.
Gerando token Jwt com PHP na mão, criado na série sobre JWT no blog: https://blog.codeexpertslearning.com.br
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
//Application Key | |
$key = ''; | |
//Header Token | |
$header = [ | |
'typ' => 'JWT', | |
'alg' => 'HS256' | |
]; | |
//Payload - Content | |
$payload = [ | |
'exp' => (new DateTime("now"))->getTimestamp(), | |
'uid' => 1, | |
'email' => '[email protected]', | |
]; | |
//JSON | |
$header = json_encode($header); | |
$payload = json_encode($payload); | |
//Base 64 | |
$header = base64_encode($header); | |
$payload = base64_encode($payload); | |
//Sign | |
$sign = hash_hmac('sha256', $header . "." . $payload, $key, true); | |
$sign = base64_encode($sign); | |
//Token | |
$token = $header . '.' . $payload . '.' . $sign; | |
print $token; |
@lcobucci perfeito. Obrigado pela dica man. Vou olhar o parser.
Confesso que eu busquei um método base64url no PHP mas percebi, como você fez, que temos que fazer na mão mesmo né?!
Obrigado pela dica, já vou passar a pensar nisto.
Abs. Sucesso.
Obrigado @NandoKstroNet pelo artigo e @lcobucci pela dica do base64url.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@NandoKstroNet parabéns pelo artigo, mano! Só uma pequena correção: JWT são codificados em base64url e não base64. Você precisa alterar alguns caracteres e remover o padding pra que os tokens possam ser transmitidos em URIs sem alteração alguma. Dá uma olhada em: https://github.com/lcobucci/jose-parsing/blob/master/src/Parser.php