mix deps.get
openssl ecparam -name secp256r1 -genkey -noout -out key.pem
iex -S mix
Play.run()
elixir 1.9.2 | |
erlang 22.1 |
use Mix.Config | |
config :joken, | |
my_key: [ | |
signer_alg: "ES256", | |
key_pem: Path.expand('./key.pem') | |
|> Path.absname() | |
|> File.read!() | |
] |
defmodule Play.Mixfile do | |
use Mix.Project | |
def project do | |
[ | |
app: :play, | |
version: "0.0.1", | |
elixir: "~> 1.9.2", | |
elixirc_paths: elixirc_paths(Mix.env()), | |
build_embedded: Mix.env() == :prod, | |
start_permanent: Mix.env() == :prod, | |
aliases: aliases(), | |
deps: deps() | |
] | |
end | |
def application, do: [] | |
defp elixirc_paths(_), do: ["lib"] | |
defp aliases, do: [] | |
defp deps do | |
[ | |
{:joken, "~> 2.0"}, | |
{:jason, "~> 1.1"} | |
] | |
end | |
end |
defmodule MyToken do | |
use Joken.Config | |
end | |
defmodule Play do | |
def run do | |
signer = Joken.Signer.parse_config(:my_key) | |
extra_claims = %{"db" => "sandy", "exp" => 2_000_000_000} | |
token = MyToken.generate_and_sign!(extra_claims, signer) | |
{:ok, token} | |
end | |
end |