2013-01-10 11 views
13

私はクッキーを削除するとします(例えば、リングのセッションCookie):clojure/ringでは、どのようにしてクッキーを削除できますか?

次のように応答マップを作る:

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

が動作しているようですが、それは少しハック感じています。

削除するだけのクリーンな方法はありますか?

+7

0にエポックまたは最大年齢の先頭にクッキーの有効期限のいずれかを設定することも、非リングアプリケーションでCookieを削除する標準的な方法です。 – soulcheck

+2

'(defn expire-cookie [resp name] (assoc-in resp [:クッキー名] {:値" ":max-age 0})) –

答えて

11

これはかなり合理的な方法です。 Many web a applicationsクッキーを削除して、期限切れになっているクッキーに置き換えてください。 :max-age 1という構文では、これよりももっと洗練された外観になります(たとえば、Javascript)。

2

私はラップセッションと他のハンドラをring.middlewareで使用していました。 (!の診断に非常にイライラ) それだけで上書きされていたので、応答で働いていなかった最大の年齢にクッキーを設定

これは私が行うために必要なものです:

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

source

0

ringはこれをサポートしていないようですが、ユーザエージェントにExpires属性を持つ新しいクッキーを過去の値で送ることができます。

more info

関連する問題