假設我想刪除一個cookie(例如環的會話cookie):在clojure/ring中,如何刪除cookie?
製作響應圖是這樣的:
{:cookies {"ring-session" {:value "kill", :max-age 1}}}
似乎工作,但感覺有點哈克。
是否有一個乾淨的方式來刪除它?
假設我想刪除一個cookie(例如環的會話cookie):在clojure/ring中,如何刪除cookie?
製作響應圖是這樣的:
{:cookies {"ring-session" {:value "kill", :max-age 1}}}
似乎工作,但感覺有點哈克。
是否有一個乾淨的方式來刪除它?
這似乎是一個相當合理的方式去實現它。 Many web a applications刪除Cookie將其替換爲即將過期的Cookie。 :max-age 1
語法使其看起來比它的樣式更優雅,例如Javascript。
我正在使用wrap-session和ring.middleware中的其他處理程序。 設置cookie來最大年齡的反應是行不通的,因爲它只是被覆蓋
這是我需要做的(非常令人沮喪的診斷!):
(defn clear-session! [resp]
(assoc resp :session nil))
ring
似乎不支持此操作,但您可以向用戶代理髮送一個新的Cookie,其中的Expires屬性包含過去的值。
或者cookie的有效期設置爲時代或最大年齡開始到0甚至非環應用刪除的cookie的標準方式。 – soulcheck
'(defn expire-cookie [resp name] (assoc-in resp [:cookies name] {:value「」:max-age 0}))'' –