Add phx.gen.auth authentication scaffolding

- LiveView-based email/password auth via mix phx.gen.auth
- Auth links removed from public navigation (direct URL access only)
- Accounts context with User schema and token management
This commit is contained in:
Willem van den Ende
2026-04-01 20:31:13 +00:00
parent 0577ceced0
commit a380d0cb69
31 changed files with 2669 additions and 0 deletions
+29
View File
@@ -1,6 +1,8 @@
defmodule FirehoseWeb.Router do
use FirehoseWeb, :router
import FirehoseWeb.UserAuth
pipeline :browser do
plug :accepts, ["html"]
plug :fetch_session
@@ -9,6 +11,7 @@ defmodule FirehoseWeb.Router do
plug :put_layout, html: {FirehoseWeb.Layouts, :app}
plug :protect_from_forgery
plug :put_secure_browser_headers
plug :fetch_current_scope_for_user
end
pipeline :api do
@@ -51,4 +54,30 @@ defmodule FirehoseWeb.Router do
forward "/mailbox", Plug.Swoosh.MailboxPreview
end
end
## Authentication routes
scope "/", FirehoseWeb do
pipe_through [:browser, :redirect_if_user_is_authenticated]
get "/users/register", UserRegistrationController, :new
post "/users/register", UserRegistrationController, :create
end
scope "/", FirehoseWeb do
pipe_through [:browser, :require_authenticated_user]
get "/users/settings", UserSettingsController, :edit
put "/users/settings", UserSettingsController, :update
get "/users/settings/confirm-email/:token", UserSettingsController, :confirm_email
end
scope "/", FirehoseWeb do
pipe_through [:browser]
get "/users/log-in", UserSessionController, :new
get "/users/log-in/:token", UserSessionController, :confirm
post "/users/log-in", UserSessionController, :create
delete "/users/log-out", UserSessionController, :delete
end
end