defmodule AshAuthentication.Strategy.Auth0 do
  alias __MODULE__.Dsl

  @moduledoc """
  Strategy for authenticating using [Auth0](

  This strategy builds on-top of `AshAuthentication.Strategy.OAuth2` and

  In order to use Auth0 you need to provide the following minimum configuration:

    - `client_id`
    - `redirect_uri`
    - `client_secret`
    - `site`

  See the [Auth0 quickstart guide](/documentation/tutorials/auth0-quickstart.html)
  for more information.

  ## DSL Documentation


  alias AshAuthentication.Strategy.{Custom, OAuth2}

  use Custom, entity: Dsl.dsl()

  defdelegate transform(strategy, dsl_state), to: OAuth2
  defdelegate verify(strategy, dsl_state), to: OAuth2