Compojure / Ring: Por que uma sessão com cookie-store não sobrevive a uma reinicialização do servidor?

Eu tenho um aplicativo compojure que usa o wrapper de sessão em anel para armazenar o token OAuth associado ao usuário atual. Eu gostaria que esse token permanecesse disponível quando o servidor for reiniciado, para que eu não tenha que passar pelo processo de autenticação a cada vez.

Presumi que usar o cookie-store em vez do armazenamento de memória padrão ajudaria, mas isso não acontece. o que estou perdendo?

Esta é a parte relevante do código:

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

A funçãoroot-handler usa o token para decidir se alguém está logado ou não, mas não retorna nada no caminho das informações da sessão.

questionAnswers(1)

yourAnswerToTheQuestion