На главную

Сеть

Заголовок Authorization

Собирает и разбирает заголовки Authorization и WWW-Authenticate: Basic с UTF-8, Bearer с расшифровкой JWT и Digest с расчётом ответа по RFC 7616. Всё считается в браузере — пароль никуда не уходит.

Basic — это Base64, а не шифрование: только поверх HTTPS

Заголовок

Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

Запрос с этим заголовком

curl

curl -H 'Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==' 'https://api.example.com/'

fetch

await fetch("https://api.example.com/", {
  headers: { Authorization: "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==" },
});

Python requests

requests.get("https://api.example.com/", headers={"Authorization": "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=="})

HTTPie

http GET 'https://api.example.com/' 'Authorization:Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=='

Коротко о схемах

  • Basic — логин:пароль в Base64 (RFC 7617). Кодировка UTF-8 по умолчанию; двоеточие в логине запрещено.
  • Bearer — токен как есть (RFC 6750). Кто держит токен, тот и владелец, поэтому только HTTPS.
  • Digest — хеш пароля с одноразовым nonce сервера (RFC 7616). Пароль не передаётся, но сервер должен хранить его в открытом виде или HA1.
  • В ответе 401 сервер обязан прислать WWW-Authenticate, в ответе прокси 407 — Proxy-Authenticate.