Can you explain how this works?
On Wednesday, July 6, 2016 at 2:37:57 PM UTC-4, Scott Corgan wrote: > > It seems like the easiest approach at this point is a combination of > binding a context type as the first argument to your update functions and > sending the Navigation.newUrl command from the updateUrl function (used by > Navigation). > > urlUpdate : Context -> Navigation.Location -> ( Model, Cmd a ) > > and the rest of the update functions: > > update : Context -> a -> Model -> ( Model, Cmd a ) > > On Wednesday, July 6, 2016 at 2:05:25 PM UTC-4, Erik Lott wrote: >> >> *Is there an idiomatic/proven way to approach Authentication in an Elm >> single page app?* Sadly, there are very few resources online that touch >> on authentication, yet it's an unavoidable part of SPA development. It >> would be great if this discussion could serve as the best answer to this >> question. >> >> In our case, I am evaluating Elm for a Single Page Application. We have a >> simple json api, as follows: >> >> The API: >> >> >> - POST /sessions - post a username/password. If the credentials are >> authentic, it returns 200 OK along with a secure http-only cookie. >> - GET /me - returns 200 OK with user record or 401 Unauthorized >> >> >> Our Elm requirements: >> >> - When the client app loads, it makes a request to /me to see if the >> user is currently logged in. If 200 OK, store the current user in elm and >> display to the Dashboard page. If not, display the login page. >> - On a successful login, make a request to /me to retrieve the >> current user record, store the current user in elm, and display the >> Dashboard page. >> - If an API response ever returns 401 Unauthorized, remove the >> current user record on the elm model, and display the login page >> >> >> I'm sure that any guidance from community would be appreciated by all! >> >> >> -- You received this message because you are subscribed to the Google Groups "Elm Discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
