mirror of
https://github.com/fergalmoran/malarkey.git
synced 2025-12-22 09:48:46 +00:00
28 lines
755 B
Elixir
28 lines
755 B
Elixir
defmodule MalarkeyWeb.AuthController do
|
|
use MalarkeyWeb, :controller
|
|
plug Ueberauth
|
|
|
|
alias Malarkey.Accounts
|
|
alias MalarkeyWeb.UserAuth
|
|
|
|
def callback(%{assigns: %{ueberauth_auth: auth}} = conn, _params) do
|
|
case Accounts.get_or_create_oauth_user(auth.provider, auth) do
|
|
{:ok, user} ->
|
|
conn
|
|
|> put_flash(:info, "Successfully authenticated.")
|
|
|> UserAuth.log_in_user(user)
|
|
|
|
{:error, _reason} ->
|
|
conn
|
|
|> put_flash(:error, "Failed to authenticate.")
|
|
|> redirect(to: ~p"/users/log_in")
|
|
end
|
|
end
|
|
|
|
def callback(%{assigns: %{ueberauth_failure: _fails}} = conn, _params) do
|
|
conn
|
|
|> put_flash(:error, "Failed to authenticate.")
|
|
|> redirect(to: ~p"/users/log_in")
|
|
end
|
|
end
|