oauth2_token_manager v0.1.0 OAuth2TokenManager.Store behaviour View Source
Token store behaviour
There are 3 types of data to store:
- access tokens
- refresh tokens
- claims and ID token
Link to this section Summary
Functions
Acts as a "flag" to mark this module as a Knigge module.
Access Knigge internal values, such as the implementation being delegated to etc.
See OAuth2TokenManager.Store.Local.delete_access_token/1
.
See OAuth2TokenManager.Store.Local.delete_refresh_token/1
.
See OAuth2TokenManager.Store.Local.get_access_token/1
.
See OAuth2TokenManager.Store.Local.get_access_tokens_client_credentials/2
.
See OAuth2TokenManager.Store.Local.get_access_tokens_for_subject/2
.
See OAuth2TokenManager.Store.Local.get_claims/2
.
See OAuth2TokenManager.Store.Local.get_id_token/2
.
See OAuth2TokenManager.Store.Local.get_refresh_token/1
.
See OAuth2TokenManager.Store.Local.get_refresh_tokens_client_credentials/2
.
See OAuth2TokenManager.Store.Local.get_refresh_tokens_for_subject/2
.
See OAuth2TokenManager.Store.Local.put_access_token/4
.
See OAuth2TokenManager.Store.Local.put_claims/3
.
See OAuth2TokenManager.Store.Local.put_id_token/3
.
See OAuth2TokenManager.Store.Local.put_refresh_token/3
.
Callbacks
Deletes an access token
Deletes a refresh token
Returns the access token and its metadata
Returns all the access tokens in the client credentials flow for a client
Returns all the access tokens for a given subject
Returns claims for a subject
Returns an ID token for the subject
Returns the refresh token and its metadata
Returns all the refresh tokens in the client credentials flow for a client
Returns all the refresh tokens for a given subject
Saves an access token and its metadata
Registers claims for a subject
Saves an ID token for a subject
Saves a refresh token and its metadata
Link to this section Functions
Specs
__knigge__() :: :ok
Acts as a "flag" to mark this module as a Knigge module.
Specs
__knigge__(:behaviour) :: module()
__knigge__(:implementation) :: module()
__knigge__(:options) :: Knigge.Options.t()
Access Knigge internal values, such as the implementation being delegated to etc.
See OAuth2TokenManager.Store.Local.delete_access_token/1
.
See OAuth2TokenManager.Store.Local.delete_refresh_token/1
.
See OAuth2TokenManager.Store.Local.get_access_token/1
.
See OAuth2TokenManager.Store.Local.get_access_tokens_client_credentials/2
.
See OAuth2TokenManager.Store.Local.get_access_tokens_for_subject/2
.
See OAuth2TokenManager.Store.Local.get_claims/2
.
See OAuth2TokenManager.Store.Local.get_id_token/2
.
See OAuth2TokenManager.Store.Local.get_refresh_token/1
.
See OAuth2TokenManager.Store.Local.get_refresh_tokens_client_credentials/2
.
See OAuth2TokenManager.Store.Local.get_refresh_tokens_for_subject/2
.
See OAuth2TokenManager.Store.Local.put_access_token/4
.
See OAuth2TokenManager.Store.Local.put_claims/3
.
See OAuth2TokenManager.Store.Local.put_id_token/3
.
See OAuth2TokenManager.Store.Local.put_refresh_token/3
.
Link to this section Callbacks
Specs
delete_access_token(OAuth2TokenManager.access_token()) :: :ok | {:error, Exception.t()}
Deletes an access token
Specs
delete_refresh_token(OAuth2TokenManager.refresh_token()) :: :ok | {:error, Exception.t()}
Deletes a refresh token
Specs
get_access_token(OAuth2TokenManager.access_token()) :: {:ok, {OAuth2TokenManager.access_token(), OAuth2TokenManager.token_type(), OAuth2TokenManager.token_metadata(), updated_at :: non_neg_integer()}} | {:ok, nil} | {:error, Exception.t()}
Returns the access token and its metadata
If the access token doesn't exist, returns {:ok, nil}
instead. {:error, e}
is
returned only in case of error.
The returned token is expected to be valid. The OAuth2TokenManager.token_valid?/1
can be
used to verify it.
Specs
get_access_tokens_client_credentials( OAuth2TokenManager.issuer(), OAuth2TokenManager.client_id() ) :: {:ok, [ {OAuth2TokenManager.access_token(), OAuth2TokenManager.token_type(), OAuth2TokenManager.token_metadata(), updated_at :: non_neg_integer()} ]} | {:error, Exception.t()}
Returns all the access tokens in the client credentials flow for a client
An empty list is returned if there are not access tokens for the client in the client credentials flow.
The returned tokens are expected to be valid. The OAuth2TokenManager.token_valid?/1
can be
used to verify it.
Specs
get_access_tokens_for_subject( OAuth2TokenManager.issuer(), OAuth2TokenManager.subject() ) :: {:ok, [ {OAuth2TokenManager.access_token(), OAuth2TokenManager.token_type(), OAuth2TokenManager.token_metadata(), updated_at :: non_neg_integer()} ]} | {:error, Exception.t()}
Returns all the access tokens for a given subject
An empty list is returned if there are not access tokens for the subject.
The returned tokens are expected to be valid. The OAuth2TokenManager.token_valid?/1
can be
used to verify it.
Specs
get_claims(OAuth2TokenManager.issuer(), OAuth2TokenManager.subject()) :: {:ok, {OAuth2TokenManager.claims() | nil, updated_at :: non_neg_integer() | nil}} | {:error, Exception.t()}
Returns claims for a subject
Specs
get_id_token(OAuth2TokenManager.issuer(), OAuth2TokenManager.subject()) :: {:ok, OAuth2TokenManager.id_token() | nil} | {:error, Exception.t()}
Returns an ID token for the subject
There is no obligation to save all of the ID tokens. Instead, the most recent one is typically preferred
Specs
get_refresh_token(OAuth2TokenManager.refresh_token()) :: {:ok, {OAuth2TokenManager.refresh_token(), OAuth2TokenManager.token_metadata(), updated_at :: non_neg_integer()}} | {:ok, nil} | {:error, Exception.t()}
Returns the refresh token and its metadata
If the refresh token doesn't exist, returns {:ok, nil}
instead. {:error, e}
is
returned only in case of error.
The returned token is expected to be valid. The OAuth2TokenManager.token_valid?/1
can be
used to verify it.
Specs
get_refresh_tokens_client_credentials( OAuth2TokenManager.issuer(), OAuth2TokenManager.client_id() ) :: {:ok, {OAuth2TokenManager.refresh_token(), OAuth2TokenManager.token_metadata(), updated_at :: non_neg_integer()}} | {:error, Exception.t()}
Returns all the refresh tokens in the client credentials flow for a client
An empty list is returned if there are not refresh tokens for the client in the client credentials flow.
The returned tokens are expected to be valid. The OAuth2TokenManager.token_valid?/1
can be
used to verify it.
Specs
get_refresh_tokens_for_subject( OAuth2TokenManager.issuer(), OAuth2TokenManager.subject() ) :: {:ok, {OAuth2TokenManager.refresh_token(), OAuth2TokenManager.token_metadata(), updated_at :: non_neg_integer()}} | {:error, Exception.t()}
Returns all the refresh tokens for a given subject
An empty list is returned if there are not refresh tokens for the subject.
The returned tokens are expected to be valid. The OAuth2TokenManager.token_valid?/1
can be
used to verify it.
put_access_token(access_token, token_type, access_token_metadata, issuer)
View SourceSpecs
put_access_token( access_token :: OAuth2TokenManager.access_token(), token_type :: OAuth2TokenManager.token_type(), access_token_metadata :: OAuth2TokenManager.token_metadata(), issuer :: OAuth2TokenManager.issuer() ) :: {:ok, OAuth2TokenManager.token_metadata()} | {:error, Exception.t()}
Saves an access token and its metadata
Specs
put_claims( OAuth2TokenManager.issuer(), OAuth2TokenManager.subject(), OAuth2TokenManager.claims() ) :: :ok | {:error, Exception.t()}
Registers claims for a subject
Specs
put_id_token( OAuth2TokenManager.issuer(), OAuth2TokenManager.subject(), OAuth2TokenManager.id_token() ) :: :ok | {:error, Exception.t()}
Saves an ID token for a subject
There is no obligation to save all of the ID tokens. Instead, the most recent one is typically preferred
Specs
put_refresh_token( refresh_token :: OAuth2TokenManager.refresh_token(), refresh_token_metadata :: OAuth2TokenManager.token_metadata(), issuer :: OAuth2TokenManager.issuer() ) :: {:ok, OAuth2TokenManager.token_metadata()} | {:error, Exception.t()}
Saves a refresh token and its metadata