How is jwt_checker_claim_get supposed to work? It expected it to return the value of a claim, but it always returns NULL.
The code accesses c.payload when it should be looking in the .claims json_t of the jwt_checker object, IMO.
I also did not see any unit tests for this function, and because of the use of preprocessor macros the code is nearly unreadable.