28 lines
680 B
Elixir
28 lines
680 B
Elixir
defmodule ComponentsElixirWeb.AuthController do
|
|
use ComponentsElixirWeb, :controller
|
|
|
|
alias ComponentsElixir.Auth
|
|
|
|
def authenticate(conn, %{"password" => password}) do
|
|
case Auth.authenticate(password) do
|
|
{:ok, :authenticated} ->
|
|
conn
|
|
|> Auth.sign_in()
|
|
|> put_flash(:info, "Successfully logged in!")
|
|
|> redirect(to: ~p"/")
|
|
|
|
{:error, :invalid_credentials} ->
|
|
conn
|
|
|> put_flash(:error, "Invalid password")
|
|
|> redirect(to: ~p"/login")
|
|
end
|
|
end
|
|
|
|
def logout(conn, _params) do
|
|
conn
|
|
|> Auth.sign_out()
|
|
|> put_flash(:info, "Logged out successfully")
|
|
|> redirect(to: ~p"/login")
|
|
end
|
|
end
|