Packages
joken
0.13.1
2.6.2
2.6.1
2.6.0
2.5.0
2.4.1
2.4.0
2.3.0
2.2.0
2.1.0
2.0.1
2.0.0
2.0.0-rc3
2.0.0-rc2
2.0.0-rc1
2.0.0-rc0
1.5.0
1.4.1
1.4.0
1.3.2
1.3.1
1.3.0
1.2.2
1.2.1
1.2.0
1.1.1
1.1.0
1.0.1
1.0.0
0.16.1
0.16.0
0.15.0
0.14.1
0.14.0
0.13.1
0.13.0
0.12.0
0.11.0
0.10.1
0.10.0
0.8.1
0.8.0
0.7.0
0.6.2
0.6.1
0.6.0
0.5.0
0.1.0
JWT (JSON Web Token) library for Elixir.
Current section
Files
Jump to
Current section
Files
README.md
Joken
=====
Encodes and decodes JSON Web Tokens.
Currently supports the following algorithms:
* HS256
* HS384
* HS512
Currently validates the following:
* Signature
* Expiration (exp)
* Not Before (nbf)
* Audience (aud)
* Issuer (iss)
* Subject (sub)
* Issued At (iat)
Usage:
Looks for a joken config with `secret_key`, `algorithm`, `json_module`. Json module being a module that implements the `Joken.Codec` Behaviour
```elixir
defmodule My.Json.Module do
alias Poison, as: JSON
@behaviour Joken.Codec
def encode(map) do
JSON.encode!(map)
end
def decode(binary) do
JSON.decode!(binary, keys: :atoms!)
end
end
```
```elixir
config :joken,
secret_key: "test",
json_module: My.Json.Module,
algorithm: :HS256, #Optional. defaults to :HS256
```
then to encode and decode
```elixir
{:ok, token} = Joken.encode(%{username: "johndoe"})
{:ok, decoded_payload} = Joken.decode(jwt)
```