Skip to content

Instantly share code, notes, and snippets.

@rwillians
Created October 31, 2019 21:02
Show Gist options
  • Save rwillians/5284bc3e441dedb75b72867d4e569150 to your computer and use it in GitHub Desktop.
Save rwillians/5284bc3e441dedb75b72867d4e569150 to your computer and use it in GitHub Desktop.
Sign token using joken
elixir 1.9.2
erlang 22.1
mix deps.get
openssl ecparam -name secp256r1 -genkey -noout -out key.pem
iex -S mix
Play.run()
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment