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)
- none (none)
- RS256 (rs256)
- RS384 (rs384)
- RS512 (rs512)
- HS256 (hs256)
- HS384 (hs384)
- HS512 (hs512)
- ES256 (es256)
- ES384 (es384)
- ES512 (es512)
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....">>
}
}