View Source Assent.JWTAdapter behaviour (Assent v0.3.0)

JWT adapter helper module.

You can configure the JWT adapter by updating the configuration:

jwt_adapter: {Assent.JWTAdapter.AssentJWT, [...]}

Default options can be set by passing a list of options:

jwt_adapter: {Assent.JWTAdapter.AssentJWT, [...]}

You can also set global application config:

config :assent, :jwt_adapter, Assent.JWTAdapter.AssentJWT

Usage

defmodule MyApp.MyJWTAdapter do
  @behaviour Assent.JWTAdapter

  @impl true
  def sign(claims, alg, secret, opts) do
    # ...
  end

  @impl true
  def verify(token, secret, opts) do
    # ...
  end
end

Summary

Functions

Loads a private key from the provided configuration.

Generates a signed JSON Web Token signature.

Verifies the JSON Web Token signature.

Callbacks

sign(map, binary, binary, t)

@callback sign(map(), binary(), binary(), Keyword.t()) ::
  {:ok, binary()} | {:error, term()}

verify(binary, arg2, t)

@callback verify(binary(), binary() | map() | nil, Keyword.t()) ::
  {:ok, map()} | {:error, term()}

Functions

load_private_key(config)

@spec load_private_key(Keyword.t()) :: {:ok, binary()} | {:error, term()}

Loads a private key from the provided configuration.

Options

  • :private_key_path - The path to the private key file, optional.
  • :private_key - The private key, required if :private_key_path is not set.

sign(claims, alg, secret, opts \\ [])

@spec sign(map(), binary(), binary(), Keyword.t()) ::
  {:ok, binary()} | {:error, term()}

Generates a signed JSON Web Token signature.

Options

verify(token, secret, opts \\ [])

@spec verify(binary(), binary() | map() | nil, Keyword.t()) ::
  {:ok, map()} | {:error, any()}

Verifies the JSON Web Token signature.

Options