Как перенаправить методы get с помощью Liberator в Clojure?
У меня есть конечная точка называется /account
который предоставляет информацию о пользователе (возвращает HTML).
Когда неавторизованный пользователь пытается получить доступ к этой конечной точке, я должен иметь возможность перенаправить на login page
но в Освободителе я нашел post-redirect
до сих пор, и это только для post methods
,
Мне нужно перенаправить get methods
а как мне этого добиться?
1 ответ
Решение
Я нашел обходной путь, следующий код делает свое дело:
(defn account
[]
(resource :allowed-methods [:get]
:available-media-types ["text/html"]
:exists? (fn [_] false)
:existed? (fn [_] true)
:moved-temporarily? (fn [ctx] {:location "/redirected-path-or-url"})
:handle-ok (fn [ctx]
[:html ...])
:handle-exception (fn [_]
"Something went wrong")))
Или вы можете проверить :authorized?
и верните логин html из :handle-unauthorized
но я сомневаюсь, что это хорошая практика или нет.