Compojure / Ring: почему сеанс с cookie-хранилищем не переживает перезапуск сервера?

У меня есть приложение compojure, которое использует оболочку сеанса вызова для хранения токена OAuth, связанного с текущим пользователем. Я хотел бы, чтобы этот токен оставался доступным при перезапуске сервера, чтобы мне не приходилось каждый раз проходить процесс аутентификации.

Я предположил, что использование 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 использует токен, чтобы решить, вошел ли кто-то в систему или нет, но ничего не возвращает в виде информации о сеансе.

Ответы на вопрос(1)

Ваш ответ на вопрос