记住我在Clojure Friend中的功能

时间:2015-07-27 11:00:54

标签: session cookies clojure session-cookies

我在Clojure Ring应用程序中使用Friend进行身份验证/授权。我试图通过“记住我”将会话数据保存到cookie中。功能,以便它可以存活,例如服务器重启。我的处理程序定义是:

(def secured-routes
  (-> app-routes
      (friend/authenticate friend-param-map)
      (wrap-defaults (-> site-defaults
                         (assoc-in [:security :anti-forgery] false)
                         (assoc :session {:store (cookie-store {:key "16-byte-secret"})
                                          :cookie-name "TestCookie"
                                          :cookie-attrs {:max-age 1800}})
                         (assoc :cookies true)))
      wrap-json-params))

我还需要编写什么才能使其正常工作?我是否需要先在其中一个app-routes处理程序中创建一个cookie?

谢谢!

1 个答案:

答案 0 :(得分:1)

我猜你已经知道这个issue了。无论如何,据我所知,你最好的机会是使用wrap-session

这样的事情应该有效(抱歉没有经过测试)

(def secured-routes
  (-> app-routes
      (friend/authenticate friend-param-map)
      (wrap-session {:cookie-attrs {:max-age 3600} :cookie-name "TestCookie" } )
      (wrap-defaults (-> site-defaults
                         (assoc-in [:security :anti-forgery] false)))
      wrap-json-params))