defmodule Rivet.Auth.Domain do @moduledoc """ Structure for in-process authentication result contexts, not directly to one user """ alias Rivet.Ident defstruct type: :acc, status: :unknown, authz: %{}, hostname: nil, user: nil, app: nil, email: nil, handle: nil, token: nil, factor: nil, created: false, log: nil, error: nil, input: nil, expires: 0 @type t :: %__MODULE__{ type: atom, status: atom, authz: map, hostname: nil | String.t(), app: nil | String.t(), user: nil | Ident.User.t(), handle: nil | Ident.Handle.t(), email: nil | Ident.Email.t(), factor: nil | Ident.Factor.t(), token: nil | map, created: boolean, # log is what we save in the logs log: nil | String.t(), # error is what we send users (default: Signin Failed) error: nil | String.t(), input: nil | map, expires: integer } @type result :: {:ok | :error, t()} end