我不太明白https://github.com/clojure-liberator/liberator以及它提供给开发人员的决策点列表。如何使用库/与库一起/在库之上实现基本的身份验证/身份验证服务?
最佳答案
惯用的方法是实现 :authorized?
决策点。但是,目前不支持处理基本或摘要身份验证。一种实用的方法是使用ring-basic-authentication 进行身份验证并仅处理资源中的授权。以下示例使用ring-basic-authentication 并将 token 设置为用户的角色。然后解放者在 authorized?
(defresource admin-only
:handle-ok "secrect"
:handle-unauthorized "for admins only"
:authorized? (fn [{{token :token} :request}]
(= "admin" token)))
;; token returned encodes role
(defn authenticated? [name pass]
(cond (and (= name "scott")
(= pass "tiger")) "admin")
(and (= name "jack")
(= pass "jill")) "user)))
(def app (wrap-basic-authentication admin-only authenticated?))
关于clojure - 如何使用clojure-liberator实现用户认证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13702003/