【发布时间】:2023-03-28 04:54:02
【问题描述】:
如何在 Ring 中间件中修改会话?我基本上想有一个存储在那里的访问 url 的历史记录,我只是无法让会话存储值。
Sessions 在我可以返回响应的代码的其他地方正常工作。我认为这与问题有关,我不了解中间件的工作原理。
这是我当前的代码
(defn wrap-history [handler]
(fn [req]
(handler (assoc-in req [:session :history]
(vec (concat (-> req :session :history) [(request/request-url req)]))))))
这是应用程序(我使用的是包含会话中间件的 ring-defaults)
(def app
(-> all-routes
(wrap-history)
(wrap-defaults (assoc-in site-defaults [:security :anti-forgery] false))))
答案可能很简单(可能与如何从中间件返回响应而不是请求有关)但我似乎无法为此找到正确的文档..
【问题讨论】:
标签: clojure middleware ring