Erlang JWT Library

erljwt is a easy to use json web token [JWT] parsing and minting library. JWT is a simple authorization token RFC7519 based on JSON.

erljwt uses the jsone library for json parsing.

supported algorithm (the atom to use)

Minimal Example

Compilation

make
make eunit

In Erlang shell (start using ./rebar3 shell):

%% Create JWT token
application:start(crypto).
Key = #{
kty => <<"oct">>,
k => <<"53F61451CAD6231FDCF6859C6D5B88C1EBD5DC38B9F7EBD990FADD4EB8EB9063">>
}.
Claims = #{
user_id => <<"bob123">>,
user_name => <<"Bob">>
}.
ExpirationSeconds = 86400.
Token = erljwt:create(hs256, Claims, ExpirationSeconds, Key).
%% validate JWT token
erljwt:validate(Token, [hs256], #{}, Key).

You get back the original claims, plus expiration claim and the header and signature:

{ok,
#{ claims =>
#{<<"exp">> => 1392607527,
<<"user_id">> => <<"bob123">>,
<<"user_name">> => <<"Bob">>
},
header => #{...},
signature => <<"lnmmaen....">>
}
}