HTTP-pyynnön lähettäminen perusautentikoinnilla

Elm:
HTTP-pyynnön lähettäminen perusautentikoinnilla

How to: | Kuinka:

import Http
import Base64

type alias MyModel = { ... }

type Msg = ...
    | RequestFailed Http.Error

-- ENCODE CREDENTIALS
encodeCredentials : String -> String -> String
encodeCredentials username password =
    "Basic " ++ Base64.encode (username ++ ":" ++ password)

-- SEND REQUEST WITH BASIC AUTH
sendRequest : String -> String -> Cmd Msg
sendRequest username password =
    let
        headers =
            [ Http.header "Authorization" (encodeCredentials username password) ]
    in
    Http.get
        { url = "https://your-api.com/data"
        , expect = Http.expectJson ...
        }
        |> Http.withHeaders headers
        |> Http.send RequestFailed

-- SAMPLE OUTPUT (Not shown in Elm, based on Msg and update function logic)

Deep Dive | Syväsukellus:

Perusautentikointi (Basic Authentication) oli yksi ensimmäisistä verkkopalvelujen tunnistusmenetelmistä. Yksinkertaisuutensa vuoksi se on edelleen käytössä, mutta huomaa, että se ei ole turvallisin vaihtoehto ilman HTTPS-yhteyttä, sillä tunnukset lähetetään base64-koodattuina selkotekstinä.

Vaihtoehtoja perusautentikoinnille ovat Bearer-autentikointi, OAuth ja API-avaimet. Näissä metodeissa tietoturvallisuus on usein parempi.

Kun lähetämme perusautentikointia vaativan pyynnön Elm:ssä, meidän täytyy lisätä Authorization otsikko sisältäen base64-koodatut tunnukset HTTP-pyynnön otsikoihin. Elm käyttää moduulia Http HTTP-pyyntöjen käsittelyyn ja Base64 moduulia tunnusten koodaamiseen.

See Also | Katso Myös: