Packages

Firebase token authentication strategy for AshAuthentication.

Current section

Files

Jump to
ash_authentication_firebase lib errors invalid_token.ex
Raw

lib/errors/invalid_token.ex

defmodule AshAuthentication.Firebase.Errors.InvalidToken do
@moduledoc """
The Firebase ID token failed verification.
The `:reason` field carries the specific failure (see `t:reason/0`).
Callers should treat this as opaque at the boundary; it is primarily
intended for logging and telemetry.
"""
use Splode.Error, fields: [:reason], class: :unauthorized
@type reason ::
:invalid_token
| :invalid_project_id
| :invalid_header
| :key_not_found
| :invalid_signature
| :malformed_payload
| :invalid_issuer
| :invalid_audience
| :expired
| :invalid_sub
| :invalid_iat
| :invalid_auth_time
@type t :: %__MODULE__{reason: reason()}
@spec message(t()) :: String.t()
def message(%{reason: reason}),
do: "Firebase token verification failed: #{reason}"
end