Files

30 lines
718 B
Elixir

defmodule Localiser.Web.Token do
use Joken.Config
@ttl 86_400 # 24 hours in seconds
@impl true
def token_config do
default_claims(
iss: "localiserd",
default_exp: @ttl
)
end
def generate(claims) do
secret = Application.fetch_env!(:localiserd, :jwt_secret)
signer = Joken.Signer.create("HS256", secret)
case generate_and_sign(claims, signer) do
{:ok, token, _claims} -> token
{:error, reason} -> raise "Token generation failed: #{inspect(reason)}"
end
end
def verify_token(token) do
secret = Application.fetch_env!(:localiserd, :jwt_secret)
signer = Joken.Signer.create("HS256", secret)
verify_and_validate(token, signer)
end
end