View Source Guardian.Token behaviour (Guardian v2.3.0)
The behaviour module for all token modules.
Token modules are responsible for all the heavy lifting in Guardian.
Link to this section Summary
Callbacks
Build the default claims for the token.
Create the token including serializing and signing.
Decode the token. Without verification of the claims within it.
Exchange a token from one type to another.
Inspect the contents of the token without validation or signature checking.
Refresh a token.
Revoke a token (if appropriate).
Generate a unique id for a token.
Verify the claims of a token.
Link to this section Types
@type claims() :: map()
@type decoding_error() :: {:error, atom()}
@type encoding_error() :: {:error, atom()}
@type resource() :: any()
@type secret_error() :: {:error, :secret_not_found}
@type signing_error() :: {:error, :signing_error}
@type token() :: String.t()
@type ttl() :: {pos_integer(), :second} | {pos_integer(), :seconds} | {pos_integer(), :minute} | {pos_integer(), :minutes} | {pos_integer(), :hour} | {pos_integer(), :hours} | {pos_integer(), :day} | {pos_integer(), :days} | {pos_integer(), :week} | {pos_integer(), :weeks}
Link to this section Callbacks
@callback build_claims( mod :: module(), resource :: any(), sub :: String.t(), claims :: claims(), options :: Keyword.t() ) :: {:ok, claims()} | {:error, atom()}
Build the default claims for the token.
@callback create_token(mod :: module(), claims :: claims(), options :: Guardian.options()) :: {:ok, token()} | signing_error() | secret_error() | encoding_error()
Create the token including serializing and signing.
@callback decode_token(mod :: module(), token :: token(), options :: Guardian.options()) :: {:ok, token()} | secret_error() | decoding_error()
Decode the token. Without verification of the claims within it.
@callback exchange( mod :: module(), old_token :: token(), from_type :: String.t() | [String.t(), ...], to_type :: String.t(), options :: Guardian.options() ) :: {:ok, {token(), claims()}, {token(), claims()}} | {:error, any()}
Exchange a token from one type to another.
Inspect the contents of the token without validation or signature checking.
@callback refresh(mod :: module(), old_token :: token(), options :: Guardian.options()) :: {:ok, {token(), claims()}, {token(), claims()}} | {:error, any()}
Refresh a token.
@callback revoke( mod :: module(), claims :: claims(), token :: token(), options :: Guardian.options() ) :: {:ok, claims()} | {:error, any()}
Revoke a token (if appropriate).
@callback token_id() :: String.t()
Generate a unique id for a token.
@callback verify_claims( mod :: module(), claims :: claims(), options :: Guardian.options() ) :: {:ok, claims()} | {:error, any()}
Verify the claims of a token.