lib/ueberauth/failure.ex

defmodule Ueberauth.Failure do
  @moduledoc """
  The struct provided to indicate a failure of authentication.

  All errors are provided by the relevant strategy.
  """

  @type t :: %__MODULE__{
          provider: atom,
          strategy: module,
          errors: list(Ueberauth.Failure.Error.t())
        }

  # the provider name
  defstruct provider: nil,
            # the strategy module that ran
            strategy: nil,
            # Ueberauth.Failure.Error collection of strategy defined errors
            errors: []
end