HTTP-Anfragen mit Basisauthentifizierung senden

Elm:
HTTP-Anfragen mit Basisauthentifizierung senden

So geht’s:

Elm macht HTTP-Anfragen mit Basisauthentifizierung simpel. Du musst nur die Http-Bibliothek verwenden und die Headers entsprechend setzen. Hier ist ein schnelles Beispiel:

import Http
import Base64

type alias Credentials =
    { username : String
    , password : String
    }

basicAuthHeader : Credentials -> Http.Header
basicAuthHeader creds =
    let
        encoded =
            Base64.encode (creds.username ++ ":" ++ creds.password)
    in
    Http.header "Authorization" ("Basic " ++ encoded)

getProtectedResource : Credentials -> String -> Cmd msg
getProtectedResource creds url =
    Http.get
        { url = url
        , headers = [ basicAuthHeader creds ]
        }
        -- Geh davon aus, dass die Antwort ein `String` ist.
        |> Http.expectString

Stelle sicher, dass du die elm/http und truqu/elm-base64 Pakete in deinem Projekt installiert hast, um die obigen Importe zu nutzen.

Tiefgang:

Die Verwendung von Basisauthentifizierung geht auf das HTTP/1.0-Protokoll zurück und wird in der RFC 7617 spezifiziert. Während die Methode aufgrund des Fehlens von Verschlüsselung kritisiert wurde, ist es für einfache Authentifizierungsszenarien durchaus üblich. Als Alternative kannst du komplexere Authentifizierungsmechanismen wie OAuth nutzen, welche Tokens statt Benutzerdaten verwenden. Bei der Implementierung in Elm ist zu beachten, dass die Anmeldeinformationen (Benutzername und Passwort) kodiert und im Authorization Header gesendet werden müssen. Sicherheitsempfehlungen raten davon ab, Basisauthentifizierung ohne HTTPS zu verwenden, da die Anmeldeinformationen sonst leicht abgefangen werden können.

Siehe auch: