Ueberauth configuration management for PhoenixKit.
This module provides a centralized way to manage Ueberauth OAuth configuration with type-safe getter and setter functions for different data types.
Usage
# Get all Ueberauth configuration
config = PhoenixKit.Config.UeberAuth.get_all()
# Get specific values
providers = PhoenixKit.Config.UeberAuth.get_providers()
base_path = PhoenixKit.Config.UeberAuth.get_base_path()
# Set configuration
PhoenixKit.Config.UeberAuth.set_providers(%{google: {Ueberauth.Strategy.Google, []}})
PhoenixKit.Config.UeberAuth.set_base_path("/custom/auth")Configuration Keys
:base_path- Base path for OAuth routes (default: calculated from URL prefix):providers- Map of OAuth providers and their strategies
Provider Management
Functions are provided for adding, removing, and checking individual providers:
update_provider/2- Add or update a providerremove_provider/1- Remove a providerhas_provider?/1- Check if a provider is configuredget_provider_names/0- Get list of all provider namesget_provider/1- Get specific provider configuration
Summary
Functions
Gets the full Ueberauth configuration from the application environment.
Gets Ueberauth base path configuration.
Gets specific Ueberauth configuration options by key.
Gets specific Ueberauth configuration options by key with a default value.
Gets the Ueberauth provider configuration for a specific provider.
Gets a list of all configured Ueberauth provider names.
Gets Ueberauth providers configuration.
Checks if a specific Ueberauth provider is configured.
Removes a specific Ueberauth provider from the configuration.
Sets Ueberauth configuration options.
Sets Ueberauth base path configuration.
Sets specific Ueberauth configuration option.
Sets OAuth configuration for a specific provider strategy.
Sets Ueberauth providers configuration.
Updates Ueberauth providers by adding or updating a specific provider.
Functions
@spec get_all() :: Keyword.t()
Gets the full Ueberauth configuration from the application environment.
This function retrieves the complete Ueberauth configuration including providers, base path, and other Ueberauth-specific settings.
Examples
iex> PhoenixKit.Config.UeberAuth.get_all()
[base_path: "/users/auth", providers: %{google: {Ueberauth.Strategy.Google, []}}]
iex> PhoenixKit.Config.UeberAuth.get_all()
[]
@spec get_base_path() :: String.t()
Gets Ueberauth base path configuration.
Returns the configured base path for OAuth routes or a default based on URL prefix.
Examples
iex> PhoenixKit.Config.UeberAuth.get_base_path()
"/users/auth"
iex> PhoenixKit.Config.UeberAuth.get_base_path()
"/phoenix_kit/users/auth"
Gets specific Ueberauth configuration options by key.
Examples
iex> PhoenixKit.Config.UeberAuth.get_option(:providers)
%{google: {Ueberauth.Strategy.Google, []}}
iex> PhoenixKit.Config.UeberAuth.get_option(:base_path)
"/users/auth"
iex> PhoenixKit.Config.UeberAuth.get_option(:nonexistent)
nil
Gets specific Ueberauth configuration options by key with a default value.
Examples
iex> PhoenixKit.Config.UeberAuth.get_option(:base_path, "/auth")
"/users/auth"
iex> PhoenixKit.Config.UeberAuth.get_option(:nonexistent, "default")
"default"
Gets the Ueberauth provider configuration for a specific provider.
Examples
iex> PhoenixKit.Config.UeberAuth.get_provider(:google)
{Ueberauth.Strategy.Google, []}
iex> PhoenixKit.Config.UeberAuth.get_provider(:nonexistent)
nil
@spec get_provider_names() :: [atom()]
Gets a list of all configured Ueberauth provider names.
Examples
iex> PhoenixKit.Config.UeberAuth.get_provider_names()
[:google, :apple, :github]
iex> PhoenixKit.Config.UeberAuth.get_provider_names()
[]
Gets Ueberauth providers configuration.
Returns the configured providers map or list, or an empty map if none configured.
Examples
iex> PhoenixKit.Config.UeberAuth.get_providers()
%{google: {Ueberauth.Strategy.Google, []}, apple: {Ueberauth.Strategy.Apple, []}}
iex> PhoenixKit.Config.UeberAuth.get_providers()
%{}
Checks if a specific Ueberauth provider is configured.
Examples
iex> PhoenixKit.Config.UeberAuth.has_provider?(:google)
true
iex> PhoenixKit.Config.UeberAuth.has_provider?(:facebook)
false
@spec remove_provider(atom()) :: :ok
Removes a specific Ueberauth provider from the configuration.
Examples
iex> PhoenixKit.Config.UeberAuth.remove_provider(:google)
:ok
@spec set_all(Keyword.t()) :: :ok
Sets Ueberauth configuration options.
Updates the Ueberauth configuration in the application environment.
Examples
iex> PhoenixKit.Config.UeberAuth.set_all([providers: %{google: {Ueberauth.Strategy.Google, []}}])
:ok
iex> PhoenixKit.Config.UeberAuth.set_all([base_path: "/custom/auth"])
:ok
@spec set_base_path(String.t()) :: :ok
Sets Ueberauth base path configuration.
Updates the base path for OAuth routes.
Examples
iex> PhoenixKit.Config.UeberAuth.set_base_path("/custom/auth")
:ok
Sets specific Ueberauth configuration option.
Updates a single key in the Ueberauth configuration.
Examples
iex> PhoenixKit.Config.UeberAuth.set_option(:base_path, "/custom/auth")
:ok
iex> PhoenixKit.Config.UeberAuth.set_option(:providers, %{google: {Ueberauth.Strategy.Google, []}})
:ok
Sets OAuth configuration for a specific provider strategy.
This configures the credentials (client_id, client_secret, etc.) for individual OAuth provider strategies like Ueberauth.Strategy.Google.OAuth.
Examples
PhoenixKit.Config.UeberAuth.set_provider_strategy_config(
:google,
Ueberauth.Strategy.Google.OAuth,
[client_id: "...", client_secret: "..."]
)
:ok
Sets Ueberauth providers configuration.
Updates the providers map in Ueberauth configuration.
Examples
iex> PhoenixKit.Config.UeberAuth.set_providers(%{google: {Ueberauth.Strategy.Google, []}})
:ok
Updates Ueberauth providers by adding or updating a specific provider.
Adds a new provider or updates an existing one in the providers configuration.
Examples
iex> PhoenixKit.Config.UeberAuth.update_provider(:google, {Ueberauth.Strategy.Google, []})
:ok