Packages

Firebase Auth helpers for Phoenix/Plug (ID token verification + hosted auth helper files)

Current section

Files

Jump to
fireauth lib fireauth token_validator.ex
Raw

lib/fireauth/token_validator.ex

defmodule Fireauth.TokenValidator do
@moduledoc """
Token validator adapter interface.
This follows the same adapter pattern as `RevenueCat.Client`:
- Call `Fireauth.TokenValidator.verify_id_token/2`
- It delegates to the configured adapter module.
Configure via:
```elixir
config :fireauth, :token_validator_adapter, Fireauth.TokenValidator.Firebase
```
"""
@type id_token :: String.t()
@type claims :: Fireauth.Claims.t()
@type opts :: keyword()
@callback verify_id_token(id_token(), opts()) :: {:ok, claims()} | {:error, term()}
@spec verify_id_token(id_token(), opts()) :: {:ok, claims()} | {:error, term()}
def verify_id_token(token, opts \\ []) when is_binary(token) and is_list(opts) do
adapter().verify_id_token(token, opts)
end
defp adapter do
Application.get_env(:fireauth, :token_validator_adapter, Fireauth.TokenValidator.Firebase)
end
end