Auctoritas v0.9.1 Auctoritas.AuthenticationManager.CachexDataStorage View Source

Default DataStorage implementation (based on Cachex)

Link to this section Summary

Types

Token expiration in seconds

Name from config (Auctoritas supervisor name)

Authentication token

Link to this section Types

Token expiration in seconds

Name from config (Auctoritas supervisor name)

Authentication token

Link to this section Functions

Link to this function

check_collision(name, token) View Source
check_collision(name(), token()) :: boolean()

Check for collisions

Arguments:

  • Name: Name from config
  • Token: Generated token
Link to this function

delete_refresh_token(name, token) View Source
delete_refresh_token(name(), refresh_token :: token()) ::
  {atom(), any()} :: {:ok, boolean()} | {:error, error :: any()}

Delete refresh token and its data

Arguments:

  • Name: Name from config
  • Token: Refesh token to delete
Link to this function

delete_token(name, token) View Source
delete_token(name(), token :: token()) ::
  {atom(), any()} :: {:ok, boolean()} | {:error, error :: any()}

Delete token and its data

Arguments:

  • Name: Name from config
  • Token: Token to delete
Link to this function

get_refresh_token_data(name, token) View Source
get_refresh_token_data(name(), refresh_token :: token()) ::
  {:ok,
   %Auctoritas.DataStorage.RefreshTokenData{
     auth_data: term(),
     metadata: term(),
     token: term()
   }}
  | {:error, error :: any()}

Get refresh token data

Arguments:

  • Name: Name from config
  • Token: Generated refresh token
Link to this function

get_refresh_tokens(name, start, amount) View Source
get_refresh_tokens(
  name(),
  start :: non_neg_integer(),
  amount :: non_neg_integer()
) :: {:ok, [token()]} | {:error, error :: any()}

Get a list of refresh tokens

Arguments:

  • Name: Name from config
  • Start: Starting point in the list
  • Amount: Amount of tokens to take from list
Link to this function

get_token_data(name, token) View Source
get_token_data(name(), token()) ::
  {:ok,
   %Auctoritas.DataStorage.Data{
     data: term(),
     metadata: term(),
     refresh_token: term()
   }}
  | {:error, error :: any()}

Get token data

Arguments:

  • Name: Name from config
  • Token: Generated token
Link to this function

get_tokens(name, start, amount) View Source
get_tokens(name(), start :: non_neg_integer(), amount :: non_neg_integer()) ::
  {:ok, [token()]} | {:error, error :: any()}

Get a list of tokens

Arguments:

  • Name: Name from config
  • Start: Starting point in the list
  • Amount: Amount of tokens to take from list
Link to this function

insert_refresh_token(name, expiration, refresh_token, token, auth_data) View Source
insert_refresh_token(
  name(),
  expiration(),
  refresh_token :: token(),
  token :: token(),
  auth_data :: map()
) ::
  {:ok, refresh_token :: token(),
   auth_data :: %Auctoritas.DataStorage.RefreshTokenData{
     auth_data: term(),
     metadata: term(),
     token: term()
   }}
  | {:error, error :: any()}

Callback implementation for Auctoritas.DataStorage.insert_refresh_token/5.

Link to this function

insert_token(name, expiration, token, data) View Source

Insert data into storage

Arguments:

  • Name: Name from config
  • Token: Generated token
  • Data: Any kind of data you would like to associate with token
Link to this function

insert_token(name, expiration, token, refresh_token, data) View Source
insert_token(name(), expiration(), token(), map(), :regular) ::
  {:ok, token :: token(),
   data :: %Auctoritas.DataStorage.Data{
     data: term(),
     metadata: term(),
     refresh_token: term()
   }}
  | {:error, error :: any()}
insert_token(name(), expiration(), token(), token(), map()) ::
  {:ok, token :: token(),
   data :: %Auctoritas.DataStorage.Data{
     data: term(),
     metadata: term(),
     refresh_token: term()
   }}
  | {:error, error :: any()}

Callback implementation for Auctoritas.DataStorage.insert_token/5.

Link to this function

refresh_token_expires?(name, token) View Source
refresh_token_expires?(name(), token()) ::
  {:ok, expiration()} | {:error, error :: any()}

Link to this function

reset_expiration(name, token, expiration) View Source
reset_expiration(name(), token(), expiration()) :: {atom(), any()}

Callback implementation for Auctoritas.DataStorage.reset_expiration/3.

Link to this function

start_link(config) View Source
start_link(
  data :: %Auctoritas.Config{
    data_storage: term(),
    expiration: term(),
    name: term(),
    refresh_token_expiration: term(),
    token_manager: term(),
    token_type: term()
  }
) :: {:ok, list()}

Starts data_storage when returned {:ok, worker_map_or_equals} Return {:no_worker} if data_storage startup isn't required

Callback implementation for Auctoritas.DataStorage.start_link/1.

Link to this function

token_exists?(name, token) View Source
token_exists?(name(), token()) :: boolean()

Check if token exists

Arguments:

  • Name: Name from config
  • Token: Generated token
Link to this function

token_expires?(name, token) View Source
token_expires?(name(), token()) ::
  {:ok, expiration()} | {:error, error :: any()}

Get token expiration (countdown)

Arguments:

  • Name: Name from config
  • Token: Generated token
Link to this function

update_metadata(name, token, new_metadata) View Source
update_metadata(name(), token(), map()) :: {atom(), any()}

Link to this function

update_token(name, token, new_data) View Source
update_token(name(), token(), map()) :: {atom(), any()}

Update token data

Arguments:

  • Name: Name from config
  • Token: Generated token
  • Data: Data to update (Map.Merge)