feat(server): session-based auth plug + login controller/template

This commit is contained in:
Carsten 2026-04-21 22:51:11 +02:00
parent 3123743c1c
commit 4538945b85
4 changed files with 95 additions and 0 deletions

View file

@ -0,0 +1,28 @@
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