feat: expose CRUD, onboarding, pubsub via web
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
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
|
||||
Reference in New Issue
Block a user