我正在使用带有 ring/compojure 的 liberator,并希望使用 liberatordefresource
宏来处理授权。我可以轻松地handle-ok
输出浏览器识别的 html,但handle-unauthorized
会在pre
标签中输出 html。
我怀疑我无法找到如何做到这一点意味着有充分的理由不这样做。我在网上看到的所有示例都显示handle-unauthorized
返回文本,但我希望显示自定义页面。
这是我使用的代码(一个版本)。我正在使用打嗝:
(defresource 拒绝所有 : 授权?(fn [_] 假) :available-media-types ["text/html"] :handle-ok (fn [ctx] (html5 [:body [:h1 "Yes!"]]))) :handle-unauthorized (fn [ctx] (html5 [:body [:h1 "Noooo!"]])))
我从浏览器得到的是文字
<!DOCTYPE html>
<html><body><h1>Noooo!</h1></body></html>
</pre>
如果我更改authorized?
为返回 true,那么它会正确输出 html。
我尝试过返回环形响应,但这些也会引发错误。我错过了什么?