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 (Дивіться Також):
- Elm HTTP package: http://package.elm-lang.org/packages/elm/http/latest
- HTTP Authentication: Basic and Digest Access Authentication: https://tools.ietf.org/html/rfc2617
- Elm Base64 package: http://package.elm-lang.org/packages/truqu/elm-base64/latest