Nie bardzo rozumiem, https://github.com/clojure-liberator/liberator i listę punktów decyzyjnych, które udostępnia programistom. W jaki sposób można wdrożyć podstawową usługę auth/auth przy użyciu/obok/na górze biblioteki?Jak zaimplementować uwierzytelnianie użytkownika za pomocą narzędzia clojure-liberator?
8
A
Odpowiedz
6
z readme”
Zasoby są kompatybilne z pierścienia i może być owinięty w pierścienia pośredniczącego. Przy ocenie, zasób zwraca funkcję, która przyjmuje wniosek dzwonka i zwraca odpowiedź ring.
więc można następnie owinąć go w 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
The idiomatycznym sposób jest wdrożenie :authorized?
punkt decyzyjny. Jednak obecnie nie ma obsługi obsługi uwierzytelniania podstawowego lub uproszczonego. Praktycznym podejściem jest użycie ring-basic-authentication
do uwierzytelnienia i obsługi tylko autoryzacji w zasobie. W poniższym przykładzie zastosowano uwierzytelnianie ring-basic-authentication i ustawia token na rolę użytkownika. Rola ta jest następnie sprawdzane przez wyzwoliciela w 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?))
Powiązane problemy
- 1. Jak zaimplementować uwierzytelnianie użytkownika w phoenix
- 2. Jak zaimplementować IEnumerable <T> za pomocą narzędzia GetEnumerator()?
- 3. Uwierzytelnianie za pomocą narzędzia Devise w testach Rspec
- 4. Uwierzytelnianie za pomocą narzędzia Devise and Rails Admin dla poszczególnych tras
- 5. Jak zaimplementować uwierzytelnianie dla interfejsu API REST?
- 6. Jak zaimplementować XOR za pomocą + - * /?
- 7. Jak przeprowadzić uwierzytelnianie za pomocą protokołu SOAP?
- 8. Uwierzytelnianie gitpython git za pomocą użytkownika i hasła
- 9. Jak zaimplementować dane wejściowe za pomocą maski
- 10. Jak wykonać uwierzytelnianie za pomocą certyfikatu klienta za pomocą Apache
- 11. Uwierzytelnianie za pomocą karty inteligentnej za pomocą programu ASP.NET
- 12. Podstawowe uwierzytelnianie za pomocą Flash
- 13. Podstawowe uwierzytelnianie za pomocą JavaScript
- 14. Ukrywanie tekstu za pomocą narzędzia QSyntaxHighlighter
- 15. Jak przeprowadzić wielokrotne uwierzytelnianie za pomocą narzędzia Devise Omniauth + (Facebook, Twitter, Google)?
- 16. Uwierzytelnianie za pomocą usługi przy użyciu tokenów
- 17. Uwierzytelnianie NTLM za pomocą RestSharp?
- 18. Jak mogę przekierować ścieżkę główną użytkownika (root) użytkownika na podstawie jego roli za pomocą narzędzia Devise?
- 19. Uwierzytelnianie za pomocą Facebooka C# SDK
- 20. Niestandardowe uwierzytelnianie za pomocą aplikacji mobilnych Azure
- 21. Jak zaimplementować GPUImageMaskFilter za pomocą GPUImage
- 22. Jak zaimplementować filtr dolnoprzepustowy za pomocą java
- 23. Jak zaimplementować wyliczanie za pomocą generycznych?
- 24. Jak zaimplementować podkomendy za pomocą opcji Boost.Program_oprogramowania?
- 25. Jak zaimplementować polimorfizm za pomocą std :: shared_ptr?
- 26. Jak przechwycić ekran za pomocą "Poradnika narzędzia"?
- 27. Uwierzytelnianie za pomocą Asp.Net, RavenDB i OAuth
- 28. Uwierzytelnianie API LinkedIn za pomocą Java
- 29. Uwierzytelnianie za pomocą adresu IP w Django
- 30. Metoda Current_user za pomocą narzędzia devis
'cone' powinno być' cond' w tej (bardzo dobrze) przykład, ale [nie mogą naprawić literówki] (https: //meta.stackexchange .pl/questions/77233/are-we-odradzamy-od-naprawiania-literówek-i-błędów pisowni-na-stornie-wymiennikach) – Conan
Naprawiono literówkę. Dzięki za podpowiedź – ordnungswidrig
Udało mi się zarządzać uwierzytelnianiem, ale nie autoryzacją. Jeśli przekażę "admin-only" tylko wrap-basic-authentication, otrzymam następujący błąd: "clojure.lang.ArityException: Błędna liczba argumentów (2) przekazanych do: controller/admin-only". Moja deklaracja trasy wygląda następująco: (Żądanie "/ test" (żądanie tylko administratora) Jak token dostaje się do zasobu? Dziękujemy –