我有一个名为/account
的端点,它提供用户信息(返回html)。
当未经授权的用户尝试访问此端点时,我需要能够重定向到login page
但是在Liberator中我找到post-redirect
到目前为止,它仅适用于post methods
。
我还需要重定向get methods
,我该如何实现?
答案 0 :(得分:3)
我发现下面的代码可以解决这个问题:
(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?
并从:handle-unauthorized
返回登录html,但我对此表示怀疑是不是一个好习惯。