Een HTTP-verzoek verzenden met basisauthenticatie

Haskell:
Een HTTP-verzoek verzenden met basisauthenticatie

Hoe te:

Je hebt het pakket http-conduit nodig voor HTTP-acties en base64-bytestring voor het coderen van referenties. Importeer ze en gebruik applyBasicAuth om referenties aan je verzoek toe te voegen.

import Network.HTTP.Simple
import Data.ByteString.Char8 (pack)
import Data.ByteString.Base64 (encode)

-- Basisauthenticatieheader construeren
let username = "user"
let password = "pass"
let auth = encode $ pack (username ++ ":" ++ password)

-- Maak je verzoek
request' = parseRequest_ "GET http://example.com/secret"
let request = setRequestHeader "Authorization" ["Basic " <> auth] request'

-- Voer het verzoek uit
response <- httpLBS request

-- Verwerk de respons
print $ getResponseBody response

Dit zal de API-respons uitvoeren, als je referenties kloppen.

Diepere Duik

Basisauthenticatie is oud in webjaren, ontworpen in het begin van de jaren ‘90, en het is zo simpel als het maar kan: een base64 gecodeerde gebruikersnaam:wachtwoord verzonden in een header. Het mist fancy functies zoals tokenverloop en, omdat het onversleuteld is, moet het altijd over HTTPS worden gebruikt.

Alternatieven zoals OAuth bieden veiliger, gedetailleerdere controle. Voor Haskell bieden bibliotheken zoals http-client en wreq je meer opties en flexibiliteit.

Wat implementatie betreft, vergeet niet om referenties hardcoded in te voeren! Gebruik omgevingsvariabelen of een veilige kluis in productie. En aangezien base64 codering geen encryptie is (iedereen kan het decoderen), is HTTPS niet alleen een goed idee, maar een must.

Zie Ook