feat(server): session-based auth plug + login controller/template
This commit is contained in:
parent
3123743c1c
commit
4538945b85
4 changed files with 95 additions and 0 deletions
28
server/lib/server_web/controllers/auth_controller.ex
Normal file
28
server/lib/server_web/controllers/auth_controller.ex
Normal 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue