Lockspire.Protocol.AuthorizationFlow (lockspire v1.0.0)

Copy Markdown

Orchestrates durable authorization interactions, consent decisions, and code issuance.

Summary

Functions

approve_interaction(interaction_id, subject_context, opts \\ [])

@spec approve_interaction(String.t(), map(), keyword()) ::
  {:approved, String.t()} | {:error, term()}

deny_interaction(interaction_id, subject_context, opts \\ [])

@spec deny_interaction(String.t(), map(), keyword()) ::
  {:denied, String.t()} | {:error, term()}

resume_interaction(interaction_id, subject_context, opts \\ [])

@spec resume_interaction(String.t(), map(), keyword()) ::
  {:consent_required, Lockspire.Domain.Interaction.t()}
  | {:consent_reused, String.t()}
  | {:error, term()}

start_authorization(validated, subject_context, opts \\ [])

@spec start_authorization(
  Lockspire.Protocol.AuthorizationRequest.Validated.t(),
  map() | nil,
  keyword()
) ::
  {:login_required, Lockspire.Domain.Interaction.t()}
  | {:consent_required, Lockspire.Domain.Interaction.t()}
  | {:consent_reused, String.t()}
  | {:redirect_error, Lockspire.Protocol.AuthorizationRequest.Error.t()}
  | {:error, term()}