Clojure Friend 中的记住我功能

Remember Me functionality in Clojure Friend

我在 Clojure Ring 应用程序中使用 Friend for authentication/authorization。我正在尝试通过 'Remember Me' 功能将会话数据保存到 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?

谢谢!

我猜你已经意识到了这一点issue. Anyway as far as I recall your best chance is to use 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))