Überauth Auth0
Auth0 OAuth2 strategy for Überauth.
Installation
Set up your Auth0 application at Auth0 dashboard
Add
ueberauth_auth0
to your list of dependencies inmix.exs
:def deps do [{:ueberauth_auth0, "~> 0.1"}] end ```
Ensure
ueberauth_auth0
is started before your application:def application do [applications: [:ueberauth_auth0]] end ```
Add Auth0 to your Überauth configuration:
config :ueberauth, Ueberauth, providers: [ auth0: {Ueberauth.Strategy.Auth0, []} ] ```
Update your provider configuration:
config :ueberauth, Ueberauth.Strategy.Auth0.OAuth, domain: System.get_env("AUTH0_DOMAIN"), client_id: System.get_env("AUTH0_CLIENT_ID"), client_secret: System.get_env("AUTH0_CLIENT_SECRET") ```
Include the Überauth plug in your controller:
defmodule MyApp.AuthController do use MyApp.Web, :controller plug Ueberauth ... end ```
Create the request and callback routes if you haven’t already:
scope "/auth", MyApp do pipe_through :browser get "/:provider", AuthController, :request get "/:provider/callback", AuthController, :callback end ```
Create the controller to handle request and callback:
def request(conn, _params) do render(conn, "login.html", callback_url: Ueberauth.Strategy.Helpers.callback_url(conn)) end def callback(%Plug.Conn{assigns: %{ueberauth_failure: fails}} = conn, _params) do conn |> put_flash(:error, hd(fails.errors).message) |> render("login.html", callback_url: Ueberauth.Strategy.Helpers.callback_url(conn)) end def callback(%Plug.Conn{assigns: %{ueberauth_auth: auth}} = conn, _params) do # auth = %Ueberauth.Auth{ # credentials: %Ueberauth.Auth.Credentials{ # token: token, # token_type: token_type, # other: %{"id_token" => id_token} # } # } redirect(conn, to: private_page_path(conn, :index)) end <h2 id="license"> License</h2> Please see [LICENSE](https://github.com/sntran/ueberauth_auth0/blob/master/LICENSE) for licensing details.