Clojure:
שליחת בקשת HTTP עם אימות בסיסי
איך לעשות:
דוגמה לקוד שולח בקשת GET עם אימות בסיסי ב-Clojure:
(require '[clj-http.client :as client])
(defn send-http-request-with-basic-auth
[url username password]
(let [credentials (str (b64/encode (str username ":" password)))]
(:status (client/get url {:headers {"Authorization" (str "Basic " credentials)}}))))
(println (send-http-request-with-basic-auth "http://example.com" "myuser" "mypass"))
פלט לדוגמה:
200
שימו לב: תתכן צורך לעטוף את התוצאה בprintln
כדי לזהות את קוד המענה בבירור.
עומק המידע:
האימות הבסיסי ב-HTTP נעשה באמצעות קידוד בבסיס 64 של שם המשתמש והסיסמה, מופרדים בנקודתיים. הוא נחשב לפשוט אך לא הכי בטוח, מכיוון שלא מציע הצפנה של מידע האימות. אלטרנטיבות נפוצות כוללות אימות דיגיטלי, OAuth או JWT (JSON Web Tokens), אשר מציעים שיפור באבטחה. לעומת זאת, אימות בסיסי עדיין נמצא בשימוש נרחב במקרים בהם פשטות הוא גורם חשוב, ובתשתיות עם וקטורי איום מוגבלים.