Clojure/Ring:添加会话密钥时响应映射为零

Clojure/Ring:添加会话密钥时响应映射为零,clojure,ring,Clojure,Ring,我想在登录时更新/回调上的会话密钥。下面是处理程序: (defn callback [{session :session :as request}] (let [id (:id (get-current-users-profile)) updated-session (assoc session :identity id)] {:status 200 :headers {"Content-Type" "text/html&quo

我想在登录时更新/回调上的会话密钥。下面是处理程序:

(defn callback [{session :session :as request}]
  (let [id (:id (get-current-users-profile))
        updated-session (assoc session :identity id)]
    {:status 200
     :headers {"Content-Type" "text/html"}
     :body (loading-page)
     :session updated-session}))
只要会话键值对出现在响应映射中,我就会得到一个500“response map is nil”响应

我在这里做错什么了吗

顺便说一下,我仍然可以通过执行以下操作更新我的/注销路由上的会话映射(没有错误):

(defn logout [{session :session}]
  (-> (resp/redirect "/")
      (assoc :session {})))
下面是调用
回调
注销

(defroutes main-routes
  (GET "/" [] index)
  (GET "/login" [] login)
  (GET "/callback" [] callback)
  (GET "/logout" [] logout))

信息不足,无法进行诊断。
回调
函数在隔离状态下看起来很好,但是您如何调用它们呢?我刚刚在原始帖子中添加了更多信息。我觉得很好<代码>回调显然永远不会返回零映射。接下来,您可以尝试添加一些日志,以确保调用了正确的函数,或者查看stacktrace中是否有任何有趣的内容(唉,可能没有)。