Envoi d'une requête HTTP avec authentification de base

Clojure:
Envoi d'une requête HTTP avec authentification de base

Comment faire :

(require '[clj-http.client :as client])

(defn send-authenticated-request []
  (let [url "http://example.com/api/resource"
        credentials (str "Basic " (.encode (java.util.Base64/getEncoder) (.getBytes "user:password")))]
    (:body
     (client/get url {:headers {"Authorization" credentials}}))))

(println (send-authenticated-request))

Exemple de sortie :

"{\"data\": {\"id\": 1, \"name\": \"Un exemple de ressource\"}}"

Deep Dive

L’authentification basique HTTP a été une méthode standard depuis les débuts du web pour protéger les accès. Cependant, sa simplicité engendre des faiblesses : les identifiants sont simplement encodés en base64, sans chiffrement. Alternativement, l’authentification par jeton, comme OAuth, offre une sécurité renforcée. Pour implémenter une requête authentifiée en Clojure, on utilise souvent clj-http, qui simplifie le processus. L’essentiel est de construire une chaîne de caractères encodée en base64 à partir de “utilisateur:mot de passe” puis de l’ajouter dans l’en-tête de la requête.

Voir aussi