The line on page 65 (using the PDF) is
on_mount: [{PentoWeb.UserAuth, :ensure_authenticated}] do
This is incorrect and will throw an error. Searching through the whole codebase shows that ensure_authenticated does not exist. The correct line is
on_mount: [{PentoWeb.UserAuth, :require_authenticated}] do
Full context:
## Authentication routes
scope "/", PentoWeb do
pipe_through [:browser, :require_authenticated_user]
live_session :require_authenticated_user,
root_layout: {PentoWeb.Layouts, :root},
# Specify the shared on_mount callback here
on_mount: [{PentoWeb.UserAuth, :require_authenticated}] do
live "/users/settings", UserLive.Settings, :edit
live "/users/settings/confirm-email/:token", UserLive.Settings, :confirm_email
live "/guess", WrongLive
end
post "/users/update-password", UserSessionController, :update_password
end