PhoenixKit.Config.UeberAuth (phoenix_kit v1.7.39)

Copy Markdown View Source

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:

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

get_all()

@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()
[]

get_base_path()

@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"

get_option(key)

@spec get_option(atom()) :: any() | nil

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

get_option(key, default)

@spec get_option(atom(), any()) :: any()

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"

get_provider(provider)

@spec get_provider(atom()) :: tuple() | nil

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

get_provider_names()

@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()
[]

get_providers()

@spec get_providers() :: map() | list()

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()
%{}

has_provider?(provider)

@spec has_provider?(atom()) :: boolean()

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

remove_provider(provider)

@spec remove_provider(atom()) :: :ok

Removes a specific Ueberauth provider from the configuration.

Examples

iex> PhoenixKit.Config.UeberAuth.remove_provider(:google)
:ok

set_all(options)

@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

set_base_path(base_path)

@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

set_option(key, value)

@spec set_option(atom(), any()) :: :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

set_provider_strategy_config(provider, strategy_module, opts)

@spec set_provider_strategy_config(atom(), module(), Keyword.t()) :: :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

set_providers(providers)

@spec set_providers(map() | list()) :: :ok

Sets Ueberauth providers configuration.

Updates the providers map in Ueberauth configuration.

Examples

iex> PhoenixKit.Config.UeberAuth.set_providers(%{google: {Ueberauth.Strategy.Google, []}})
:ok

update_provider(provider, strategy_config)

@spec update_provider(atom(), tuple()) :: :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