Relyra.SessionAdapter behaviour (relyra v1.6.0)

Copy Markdown View Source

Public extension contract for handing off authenticated subjects to host sessions.

Summary

Callbacks

establish_session(subject, context, opts)

@callback establish_session(subject :: map(), context :: map(), opts :: keyword()) ::
  {:ok, map() | Plug.Conn.t()} | {:error, Relyra.Error.t()}

index_session(session_index, issuer, context, opts)

@callback index_session(
  session_index :: binary(),
  issuer :: binary(),
  context :: map(),
  opts :: keyword()
) :: {:ok, term()} | {:error, Relyra.Error.t()}

revoke_session(subject, session_index, context, opts)

@callback revoke_session(
  subject :: map(),
  session_index :: binary() | nil,
  context :: map(),
  opts :: keyword()
) :: {:ok, term()} | {:error, Relyra.Error.t()}

terminate_by_session_index(session_index, issuer, context, opts)

@callback terminate_by_session_index(
  session_index :: binary(),
  issuer :: binary(),
  context :: map(),
  opts :: keyword()
) :: {:ok, term()} | {:error, Relyra.Error.t()}

Functions

establish_session(subject, context, opts \\ [])

@spec establish_session(map(), map(), keyword()) ::
  {:ok, map() | Plug.Conn.t()} | {:error, Relyra.Error.t()}

index_session(session_index, issuer, context, opts \\ [])

@spec index_session(binary(), binary(), map(), keyword()) ::
  {:ok, term()} | {:error, Relyra.Error.t()}

revoke_session(subject, session_index, context, opts \\ [])

@spec revoke_session(map(), binary() | nil, map(), keyword()) ::
  {:ok, term()} | {:error, Relyra.Error.t()}

terminate_by_session_index(session_index, issuer, context, opts \\ [])

@spec terminate_by_session_index(binary(), binary(), map(), keyword()) ::
  {:ok, term()} | {:error, Relyra.Error.t()}