私はクッキーを削除するとします(例えば、リングのセッションCookie):clojure/ringでは、どのようにしてクッキーを削除できますか?
次のように応答マップを作る:
{:cookies {"ring-session" {:value "kill", :max-age 1}}}
が動作しているようですが、それは少しハック感じています。
削除するだけのクリーンな方法はありますか?
私はクッキーを削除するとします(例えば、リングのセッションCookie):clojure/ringでは、どのようにしてクッキーを削除できますか?
次のように応答マップを作る:
{:cookies {"ring-session" {:value "kill", :max-age 1}}}
が動作しているようですが、それは少しハック感じています。
削除するだけのクリーンな方法はありますか?
これはかなり合理的な方法です。 Many web a applicationsクッキーを削除して、期限切れになっているクッキーに置き換えてください。 :max-age 1
という構文では、これよりももっと洗練された外観になります(たとえば、Javascript)。
私はラップセッションと他のハンドラをring.middlewareで使用していました。 (!の診断に非常にイライラ) それだけで上書きされていたので、応答で働いていなかった最大の年齢にクッキーを設定
これは私が行うために必要なものです:
(defn clear-session! [resp]
(assoc resp :session nil))
ring
はこれをサポートしていないようですが、ユーザエージェントにExpires属性を持つ新しいクッキーを過去の値で送ることができます。
0にエポックまたは最大年齢の先頭にクッキーの有効期限のいずれかを設定することも、非リングアプリケーションでCookieを削除する標準的な方法です。 – soulcheck
'(defn expire-cookie [resp name] (assoc-in resp [:クッキー名] {:値" ":max-age 0})) –