Boruta.Oauth.IdToken (Boruta core v3.0.0-beta.4)

View Source

OpenID Connect id token schema and utilities

Summary

Functions

Format claims according to either a claim value or a claim definition.

Types

claim_definition()

@type claim_definition() :: map()

claims()

@type claims() ::
  %{required(String.t()) => term() | claims()}
  | %{required(String.t()) => claim_definition() | claims()}

tokens()

@type tokens() :: %{
  optional(:code) => %Boruta.Oauth.Token{
    agent_token: term(),
    authorization_details: term(),
    bind_configuration: term(),
    bind_data: term(),
    c_nonce: term(),
    client: Boruta.Oauth.Client.t(),
    code_challenge: term(),
    code_challenge_hash: term(),
    code_challenge_method: term(),
    expires_at: term(),
    id: term(),
    inserted_at: DateTime.t(),
    nonce: term(),
    presentation_definition: term(),
    previous_code: term(),
    public_client_id: term(),
    redirect_uri: term(),
    refresh_token: term(),
    refresh_token_revoked_at: term(),
    resource_owner: term(),
    revoked_at: term(),
    scope: String.t(),
    state: term(),
    sub: String.t(),
    tx_code: term(),
    type: term(),
    value: term()
  },
  optional(:token) => %Boruta.Oauth.Token{
    agent_token: term(),
    authorization_details: term(),
    bind_configuration: term(),
    bind_data: term(),
    c_nonce: term(),
    client: Boruta.Oauth.Client.t(),
    code_challenge: term(),
    code_challenge_hash: term(),
    code_challenge_method: term(),
    expires_at: term(),
    id: term(),
    inserted_at: DateTime.t(),
    nonce: term(),
    presentation_definition: term(),
    previous_code: term(),
    public_client_id: term(),
    redirect_uri: term(),
    refresh_token: term(),
    refresh_token_revoked_at: term(),
    resource_owner: term(),
    revoked_at: term(),
    scope: String.t(),
    state: term(),
    sub: String.t(),
    tx_code: term(),
    type: term(),
    value: term()
  },
  optional(:base_token) => %Boruta.Oauth.Token{
    agent_token: term(),
    authorization_details: term(),
    bind_configuration: term(),
    bind_data: term(),
    c_nonce: term(),
    client: Boruta.Oauth.Client.t(),
    code_challenge: term(),
    code_challenge_hash: term(),
    code_challenge_method: term(),
    expires_at: term(),
    id: term(),
    inserted_at: DateTime.t(),
    nonce: term(),
    presentation_definition: term(),
    previous_code: term(),
    public_client_id: term(),
    redirect_uri: term(),
    refresh_token: term(),
    refresh_token_revoked_at: term(),
    resource_owner: term(),
    revoked_at: term(),
    scope: String.t(),
    state: term(),
    sub: String.t(),
    tx_code: term(),
    type: term(),
    value: term()
  }
}

Functions

format_claims(claims)

@spec format_claims(claims :: claims()) :: claims()

Format claims according to either a claim value or a claim definition.

Claim definitions contain the "display" and "value" reserved words helping the formatting.

generate(tokens, nonce)

@spec generate(tokens :: tokens(), nonce :: String.t()) ::
  id_token :: Boruta.Oauth.Token.t()