Exemplo de implementação de JSON Web Tokens
A classe SysLibJwt permite a manipulação de tokens de autenticação através do padrão JWT (JSON Web Tokens).
#include "totvs.ch"
#define DAYS_TO_EXPIRE_TOKEN 1
#define TOKEN_PASSWORD "!token#p@$$w0rd"
user function JwtSample()
local cToken := createToken()
local oPayload := decodeToken(cToken)
MsgInfo(oPayload:toJson())
return
static function createToken()
local oPayload := JsonObject():new()
local oJwt := SysLibJwt():new()
oPayload["userId"] := RetCodUsr()
oPayload["expiresAt"] := DtoS(dDatabase + DAYS_TO_EXPIRE_TOKEN)
return oJwt:encode(oPayload:toJson(), TOKEN_PASSWORD)
static function decodeToken(cToken)
local oPayload := JsonObject():new()
local oJwt := SysLibJwt():new()
local cData := oJwt:decode(cToken, TOKEN_PASSWORD)
oPayload:fromJson(cData)
return oPayload