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))
我在 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))