This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2021-10-14
Channels
- # announcements (1)
- # asami (3)
- # aws (1)
- # babashka (22)
- # beginners (39)
- # calva (21)
- # clj-kondo (10)
- # cljdoc (22)
- # cljs-dev (17)
- # clojure (93)
- # clojure-australia (3)
- # clojure-europe (39)
- # clojure-italy (3)
- # clojure-losangeles (17)
- # clojure-nl (14)
- # clojure-russia (2)
- # clojure-uk (5)
- # clojurescript (35)
- # community-development (7)
- # conjure (2)
- # cursive (13)
- # data-science (1)
- # datomic (25)
- # emacs (5)
- # events (4)
- # figwheel-main (2)
- # fulcro (12)
- # graphql (7)
- # gratitude (2)
- # inf-clojure (6)
- # leiningen (6)
- # lsp (49)
- # malli (13)
- # membrane (30)
- # minecraft (1)
- # pathom (3)
- # pedestal (26)
- # polylith (13)
- # portal (2)
- # quil (3)
- # random (1)
- # re-frame (13)
- # reagent (43)
- # reitit (6)
- # releases (1)
- # reveal (2)
- # ring (3)
- # shadow-cljs (30)
- # specter (5)
- # sql (8)
- # tools-build (1)
- # tools-deps (13)
- # videos (1)
I would like to store some information about a logged in user in the session. I tried doing it via a middleware, but every time I visit a new page/route, the middleware that collects user info runs again because the info from the previous session is gone. Do I need to explicitly assoc response :session session
in all of my routes to keep these values around from page to page?
(defn wrap-user-info
[handler]
(fn [request]
(if (contains? (:session request) :okta-user-info)
(handler request)
(let [okta-user-info-res (okta-user-info request)]
(info "Adding user info to session")
(handler (-> request
(assoc-in [:session :okta-user-info] okta-user-info-res)))))))
If you have middleware in your stack to handle sessions, it should "just work" I think.
I do recall running into some issues at one point because I had middleware in the wrong order and sessions were being lost if my handler used response
to generate the result. That's why ring-defaults
is such a useful library: it makes sure you have (almost) everything in place in the right order.