Надсилання HTTP-запиту з базовою автентифікацією

Elm:
Надсилання HTTP-запиту з базовою автентифікацією

How to: (Як це зробити:)

import Http
import Base64 exposing (encode)

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

model : Model
model =
    { username = "user"
    , password = "pass"
    }

type Msg
    = GotData (Result Http.Error String)

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

requestData : Model -> Cmd Msg
requestData creds =
    Http.get
        { url = "https://your.api/endpoint"
        , headers = [ basicAuthHeader creds ]
        }
        |> Http.expectString GotData

Цей код ініціалізує запит HttpMethod.Get з базовими аутентифікаційними даними. Якщо сервер підтверджує ці дані, він повертає відповідний вміст.

Deep Dive (Поглиблений Аналіз):

HTTP базова аутентифікація - історично одна з перших метод поданий у 1996 (RFC 1945) для захисту веб-ресурсів. Сьогодні існують безпечніші методи, наприклад OAuth 2.0 чи JWT, але базова аутентифікація ефективна для простих API або закритих систем. Elm використовує модуль Http для створення запитів і встановлення заголовків, таких як Authorization. Безпечно передавайте і зберігайте аутентифікаційні дані.

See Also (Дивіться Також):