What do you need to do?
In your router (router.ex) you should have something like this:
scope "/", PayBillWeb do
pipe_through [:browser, :require_authenticated_user]
get "/users/settings", UserSettingsController, :edit
put "/users/settings/update_password", UserSettingsController, :update_password
put "/users/settings/update_email", UserSettingsController, :update_email
get "/users/settings/confirm_email/:token", UserSettingsController, :confirm_email
live "/sequences", SequenceLive.Index, :index
live "/sequences/new", SequenceLive.Index, :new
live "/sequences/:id/edit", SequenceLive.Index, :edit
live "/sequences/:id", SequenceLive.Show, :show
live "/sequences/:id/show/edit", SequenceLive.Show, :edit
end
Here if someone tries to go to /sequences they will be redirected to the login controller if they aren’t already authenticated.
At this point if you’re inside a live view, you don’t need to use any of the UserAuth functions. The UserAuth functions are supposed to be used over HTTP because they are for setting cookies and renewing sessions.
Instead, when mounting, you get a map, like you mentioned, in the session argument. Here, you can pull out the user_token so you can find the user in the database:
def mount(_params, %{"user_token" => user_token}, socket) do
user = user_token && Accounts.get_user_by_session_token(user_token)
...
end
Then you can do what you need to do as far as authorization is concerned.






















