Session 在clojure/ring中,如何删除cookie?
假设我要删除一个cookie(例如,ring的会话cookie): 制作如下的响应图:Session 在clojure/ring中,如何删除cookie?,session,web-applications,cookies,clojure,ring,Session,Web Applications,Cookies,Clojure,Ring,假设我要删除一个cookie(例如,ring的会话cookie): 制作如下的响应图: {:cookies {"ring-session" {:value "kill", :max-age 1}}} 看起来不错,但感觉有点不舒服 有没有一种干净的方法可以直接删除它?这似乎是一种相当合理的方法。删除Cookie将替换为即将过期的Cookie。例如,:max age 1语法使它看起来比在中更优雅。我在使用wrap会话和ring.middleware中的其他处理程序。 将cookie设置为max a
{:cookies {"ring-session" {:value "kill", :max-age 1}}}
看起来不错,但感觉有点不舒服
有没有一种干净的方法可以直接删除它?这似乎是一种相当合理的方法。删除Cookie将替换为即将过期的Cookie。例如,
:max age 1
语法使它看起来比在中更优雅。我在使用wrap会话和ring.middleware中的其他处理程序。
将cookie设置为max age在响应中不起作用,因为它只是被覆盖(诊断起来非常令人沮丧!)
这就是我需要做的:
(defn clear-session! [resp]
(assoc resp :session nil))
ring
似乎不支持此功能,但您可以向用户代理发送一个新的cookie,该cookie具有Expires属性,并且具有过去的值
将cookie过期日期设置为历元的开始或将最大年龄设置为0是删除cookie的标准方法,即使在非环应用程序中也是如此。
(defn expire cookie[resp name](resp中的assoc[:cookies name]{:value”“:max age 0}))