我有一個compojure應用程序,它使用鈴聲會話包裝來存儲與當前用戶關聯的OAuth令牌。我希望這個令牌在服務器重新啓動時保持可用,這樣我就不必每次都經歷auth過程。Compojure/Ring:爲什麼cookie服務器的會話不能在服務器重啓後繼續?
我認爲使用cookie存儲而不是默認的內存存儲會有所幫助,但它不會。我錯過了什麼?
這是代碼的相關部分:
(defn auth-callback-handler
[session {code :code}]
(let [token (retrieve-token code)]
(-> (redirect "/") (assoc :session (assoc session :token token)))))
(defroutes app-routes
(GET "/" {session :session} (root-handler session))
(GET "/auth-callback" {session :session params :params} (auth-callback-handler session params))
(route/not-found "Not Found"))
(def app
(-> (handler/site app-routes)
(wrap-session {:store (cookie-store {:key "a 16-byte secret"})})))
功能root-handler
使用該令牌來決定是否有人登錄或沒有,但在會話信息的方式不返回任何東西。