Compojure / Ring: Dlaczego sesja ze sklepem cookie nie przetrwa ponownego uruchomienia serwera?

Mam aplikację compojure, która używa opakowania sesji sesji do przechowywania tokena OAuth powiązanego z bieżącym użytkownikiem. Chciałbym, aby ten token pozostawał dostępny po ponownym uruchomieniu serwera, aby nie musiałem za każdym razem przechodzić przez proces uwierzytelniania.

Założyłem, że użycie sklepu z ciasteczkami zamiast domyślnego magazynu pamięci pomoże, ale tak nie jest. czego mi brakuje?

To jest odpowiednia część kodu:

(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"})})))

Funkcjaroot-handler używa tokena, aby zdecydować, czy ktoś jest zalogowany, czy nie, ale nie zwraca nic w postaci informacji o sesji.

questionAnswers(1)

yourAnswerToTheQuestion