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:
- Elm HTTP package documentation: Elm HTTP
- Base64 encoding for credentials: Base64 Elm Package
- HTTP authentication methods overview: MDN Web Docs