Skip to content

Repository files navigation

jwt — Erlang JWT Library


Build StatusCoverage StatusHex.pm


JWT is a simple authorization token format based on JSON.

If you use rebar (supports both 2 and 3 versions) or mix (Elixir):

% in rebar.config for rebar3
{deps, [{jwt}]}.
% or for rebar2
{deps, [{jwt, ".*", {git, "https://github.com/artemeff/jwt", {tag, "0.1.0"}}}]}
%mix.exsdefdepsdo[{:jwt,"~> 0.1"}]end

Or use it as git dependency.

%% Create JWT token>application:ensure_all_started(jwt).
>Key= <<"supas3cri7">>.
>Claims= [
{user_id, 42},
{user_name, <<"Bob">>}
].
> {ok, Token} =jwt:encode(<<"HS256">>, Claims, Key).
%% or with expiration>ExpirationSeconds=86400.
> {ok, Token} =jwt:encode(<<"HS256">>, Claims, ExpirationSeconds, Key).
%% Parse JWT token> {ok, Claims} =jwt:decode(Token, Key).
%% Issuer specific keys workflow%% The encoder just knows about itself>Issuer= <<"iss1">>.
>IssuerKey= <<"Issuer-1-Key">>.
>Claims2= [
{iss, Issuer},
{user_id, 42},
{user_name, <<"Bob">>}
].
> {ok, Token2} =jwt:encode(<<"HS256">>, Claims, ExpirationSeconds, IssuerKey).
%% Decoder Workflow%% The decoder knows about all encoder keys (issuer specific)>IssuerKeyMapping= #{ Issuer=>IssuerKey,
<<"iss2">> => <<"Issuer2Key">>}.
> {ok, Claims} =jwt:decode(Token, <<"default-key">>, IssuerKeyMapping).

  • Fork it
  • Create your feature branch (git checkout -b my-new-feature)
  • Commit your changes (git commit -am 'add some feature')
  • Push to the branch (git push origin my-new-feature)
  • Create new Pull Request

Modules

jwk
jwt
jwt_ecdsa

About

Erlang JWT library

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages