Current section
Files
Jump to
Current section
Files
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