28 lines
668 B
Elixir
28 lines
668 B
Elixir
defmodule ServerWeb.AuthController do
|
|
use ServerWeb, :controller
|
|
|
|
def login(conn, _params) do
|
|
render(conn, :login, error: nil, layout: false)
|
|
end
|
|
|
|
def create(conn, %{"password" => password}) do
|
|
case Server.Auth.verify_password(password) do
|
|
:ok ->
|
|
conn
|
|
|> configure_session(renew: true)
|
|
|> put_session(:authenticated, true)
|
|
|> redirect(to: "/")
|
|
|
|
:error ->
|
|
conn
|
|
|> put_status(:unauthorized)
|
|
|> render(:login, error: "Incorrect password.", layout: false)
|
|
end
|
|
end
|
|
|
|
def delete(conn, _params) do
|
|
conn
|
|
|> configure_session(drop: true)
|
|
|> redirect(to: "/login")
|
|
end
|
|
end
|