Enviando una solicitud http con autenticación básica

Elm:
Enviando una solicitud http con autenticación básica

Cómo Hacerlo:

import Http
import Base64

type alias Model =
    { response : String }

type Msg
    = GotData (Result Http.Error String)

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

sendRequest : Cmd Msg
sendRequest =
    Http.request
        { method = "GET"
        , headers = [ basicAuthHeader "your-username" "your-password" ]
        , url = "https://example.com/protected-resource"
        , body = Http.emptyBody
        , expect = Http.expectString GotData
        , timeout = Nothing
        , tracker = Nothing
        }

update : Msg -> Model -> ( Model, Cmd Msg )
update msg model =
  case msg of
    GotData (Ok data) ->
      ( { model | response = data }, Cmd.none )

    GotData (Err error) ->
      ( { model | response = "An error occurred" }, Cmd.none )

Inmersión Profunda:

Enviar una petición HTTP con autenticación básica no es concepto nuevo; existe desde los primeros días de la web para proteger contra accesos no autorizados. Alternativas modernas como la autenticación de token, OAuth, y JWT se han vuelto populares por ofrecer más seguridad y flexibilidad. Sin embargo, para algunos casos simples y controlados, la autenticación básica aún se utiliza. En Elm, esto implica codificar las credenciales en base64 y agregarlas al encabezado ‘Authorization’ de nuestras peticiones HTTP.

Ver También: