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)

Smoke test example

Compilation

   make
   make eunit

In Erlang shell:

    %% Create JWT token
    application:start(crypto).
    Key = <<"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....">>
    }
}