2013-01-10 34 views
13

Kurabiye silmek istediğinizi varsayalım (örneğin, yüzüğün oturum tanımlama):clojure/ring'de, bir çerezi nasıl silerim?

böyle bir tepki harita yapma:

{:cookies {"ring-session" {:value "kill", :max-age 1}}} 

iş gibi görünüyor, ama biraz hacky hissediyor.

sadece silmek için temiz bir yolu var mı? Bu konuda gidiş oldukça makul bir yol gibi görünüyor

+7

0'a çağında veya maks çağın başlangıcına çerez son kullanma tarihi ya ayarını bile olmayan halka uygulamalarında çerezleri silme standart bir yoludur. – soulcheck

+2

'(defn sona çerez [solunum ad] (Assoc içinde resp [: tanımlama adı] {: değeri: "" max-yaş 0}))' –

cevap

11

. Many web a applications çerezleri silinmek üzere olan bir tane ile değiştirin. :max-age 1 sözdizimi örneğin, Javascript için, içinde yaptığından daha bu çok daha zarif görünmesini sağlar.

2

Ben sarmalı oturum ve ring.middleware diğer işleyicileri kullanıyordu. Sadece üzerine yazılmasına beri maks yaş çerezi ayarlanması yanıt olarak çalışma değildi

Bu Yapmam gereken nedir (teşhis etmek çok sinir bozucu!):

(defn clear-session! [resp] 
(assoc resp :session nil)) 

source

0

ring bu desteği yok gibi görünüyor, ama bir geçmişte bir özelliğin değeri sona eriyor ile kullanıcı aracısı yeni bir çerez gönderebilir.

more info