Я занимаюсь разработкой сайта с помощью Luminus, до сих пор моя функция связывания промежуточного программного обеспечения выглядит следующим образом:
(defn wrap-base [handler]
(-> ((:middleware defaults) handler)
wrap-auth
(wrap-access-rules {:rules rules :on-error on-error})
(wrap-authentication (session-backend))
wrap-flash
(wrap-defaults
(-> site-defaults
(assoc-in [:security :anti-forgery] false)
(assoc-in [:session :store] (ttl-memory-store (* 60 30)))))
wrap-internal-error))
и мой файл route / home.clj:
(defn home-routes []
[""
{:middleware [middleware/wrap-csrf
middleware/wrap-formats]}
(merge public-routes admin-routes)])
но теперь мне нужно разработать новый API ("/ api / getcustomers"), поэтому все промежуточное ПО для аутентификации / авторизации (и csrf) должно быть только для "домашних маршрутов", а не для новых маршрутов API. Маршруты API сохраняются в новом файле route / services.clj.
К счастью, Luminus использует reitit.ring, решение для маршрутизации на основе данных, но я не уверен, как переместить аутентификацию / авторизацию общего промежуточного программного обеспечения и назначьте его только для раздела "home-маршруты".