mix deps.get
openssl ecparam -name secp256r1 -genkey -noout -out key.pem
iex -S mixPlay.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 |