jsmn_token_decode

Synopsis

int jsmn_token_decode(
    jsmn_token_decode_s*,
    const char* secret,
    JSMN_ALG,
    const char*,
    uint32_t);

Convert a JSON Web Token in dot notation format into JSON data. Internally this routine will check to make sure the JWT header algorithm matches the algorithm argument. It will also verify the signature with callers secret key.

Parameters

Parameter Description
jsmn_token_decode_s *token A context to manage decoder state
const char *secret A key of appropriate length per your signing algorithm
JSMN_ALG alg An algorithm for to sign token with
const char *jwt JWT string in dot notation format
uint32_t len Length of JWT string

Examples

Decode some token

const char *jwt = \
   "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9."\
   "eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ."\
   "SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c";

int err;
jsmn_token_decode_s token;

// Decode and validate token
err = jsmn_token_decode(&token, "your-256-bit-secret", JSMN_ALG_HS256, jwt, strlen(jwt));

See Also

  1. JSMN_ALG