मैं वास्तव में https://github.com/clojure-liberator/liberator और डेवलपर को प्रदान किए गए निर्णय बिंदुओं की सूची को समझ नहीं रहा हूं। लाइब्रेरी के साथ/साथ-साथ-साथ किसी एक मूल लेख/लेखक सेवा को कैसे लागू किया जाएगा?क्लोजर-मुक्तिदाता का उपयोग करके उपयोगकर्ता प्रमाणीकरण को कैसे कार्यान्वित करें?
8
A
उत्तर
6
रीडमी "
संसाधन की अंगूठी के साथ संगत कर रहे हैं और अंगूठी मिडलवेयर में लिपटे जा सकता से
। जब मूल्यांकन किया, एक संसाधन के एक समारोह है जो एक अंगूठी अनुरोध लेता है और एक अंगूठी प्रतिक्रिया लौटाता देता है।
ताकि आप तो ring-basic-authentication
(use 'ring.middleware.basic-authentication)
(defn authenticated? [name pass] (and (= name "foo") (= pass "bar")))
(def app (-> routes .. (wrap-basic-authentication authenticated?))
14
मुहावरेदार रास्ता में लपेट कर सकते हैंलागू करने के लिए हैनिर्णय बिंदु। हालांकि वर्तमान में बुनियादी या पाचन प्रमाणीकरण के संचालन के लिए कोई समर्थन नहीं है। एक व्यावहारिक दृष्टिकोण ring-basic-authentication
प्रमाणीकरण के लिए उपयोग करना है और संसाधन में केवल प्राधिकरण को संभालना है। निम्न उदाहरण रिंग-मूल-प्रमाणीकरण का उपयोग करता है और उपयोगकर्ताओं की भूमिका में टोकन सेट करता है। यह भूमिका तो में 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?))
'cone' मुक्तिदाता द्वारा जाँच की है' होना चाहिए इस (बहुत अच्छा) उदाहरण में cond', लेकिन हम (https [लिखने की त्रुटियों को ठीक करने की अनुमति नहीं है]: //meta.stackexchange .com/प्रश्न/77233/हैं-हम-निराश-से-फिक्सिंग-टाइप-एंड-मिस्पेलिंग्स-ऑन-स्टैक-एक्सचेंज-साइट्स) – Conan
टाइपो निश्चित है। संकेत – ordnungswidrig
के लिए धन्यवाद मैं प्रमाणीकरण का प्रबंधन करने में सक्षम था, लेकिन प्राधिकरण नहीं। यदि मैं रैप-मूल-प्रमाणीकरण के लिए "व्यवस्थापक-केवल" पास करता हूं तो मुझे निम्न त्रुटि मिलती है "clojure.lang.ArityException: गलत संख्याओं के तर्क (2) को पास किया गया: नियंत्रक/व्यवस्थापक-केवल"। मेरा मार्ग घोषणा निम्नानुसार है: ("/ test" अनुरोध प्राप्त करें (केवल व्यवस्थापक अनुरोध)। टोकन संसाधन को कैसे प्राप्त करता है? धन्यवाद। –