defmodule ExPetOauthWeb.AuthController do use ExPetOauthWeb, :controller plug Ueberauth alias ExPetOauth.UserFromAuth def callback(%{assigns: %{ueberauth_auth: auth}} = conn, _params) do case UserFromAuth.find_or_create(auth) do {:ok, user} -> conn |> put_flash(:info, "Successfully authenticated.") |> put_session(:current_user, user) |> configure_session(renew: true) |> redirect(to: "/") {:error, reason} -> conn |> put_flash(:error, reason) |> redirect(to: "/") end end def callback(%{assigns: %{ueberauth_failure: _fails}} = conn, _params) do conn |> put_flash(:error, "Failed to authenticate.") |> redirect(to: "/") end def delete(conn, _params) do conn |> put_flash(:info, "You have been logged out!") |> clear_session() |> redirect(to: "/") end end