kuon
How to manage session state with live view
When reading about live view, I read this from José:
Why would the login be an horrible idea for LiveView?
And, as a more general question, how should session be managed when using LiveView. For regular app, and API endpoints, I usually just have a require_user plug that check the session for a user_id and retrieve the corresponding user from the database. My login action just |> put_session("user_id", user.id) after a successful login.
How would this work with LiveView?
Most Liked
slashmili
TL;DR: use phx_trigger_action
I’ve came across this thread multiple times past few months while I was looking for a solution, I was about to implement the workaround that people are offering(calling an API to set session) here but I learned about phx_trigger_action attributes for form bindings.
The
phx-trigger-actionattribute can be added to a form to trigger a standard form submit on DOM patch to the URL specified in the form’s standardactionattribute. This is useful to perform pre-final validation of a LiveView form submit before posting to a controller route for operations that require Plug session mutation.
Kudo goes to Pragmatic Studio’s Phoenix LiveView couse. I highly recommend it!
toranb
I realize I’m really /really/ late to the party but I did blog up a solution I put together for login & signup forms in Phoenix LiveView if anyone is still hunting around for options
josevalim
See the original text I was replying to.
If you login through LiveView, then if you navigate to another page or open up another tab, you will have to login again. LiveView keeps the current page state.
When you render a liveview, one of the parameters is the session, which are the session fields currently in your session that you want to send to the liveview.
So if you do:
live "/foo", FooLiveView, session: [:user_id]
Then the user_id field will also be available in the LiveView mount, which you can retrieve it from the database once again.
So the idea is to login as usual and then pass the relevant session fields to the live view.
Popular in Questions
Other popular topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #advent-of-code
- #elixirconf-us
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #performance








