Отправка HTTP-запроса с базовой аутентификацией

Python:
Отправка HTTP-запроса с базовой аутентификацией

Как это сделать:

Вот как заставить Python общаться с сервером, используя Базовую Аутентификацию.

import requests
from requests.auth import HTTPBasicAuth

# Замените на ваши фактические учетные данные и конечную точку API, с которой вы работаете
username = 'cooluser'
password = 'supersecretpassword'
url = 'https://api.someservice.com/data'

response = requests.get(url, auth=HTTPBasicAuth(username, password))

# Посмотрите, что мы получили в ответ
print(response.status_code)
print(response.json())  # предполагая, что ответ в формате JSON

Вывод может выглядеть так, если все прошло гладко:

200
{'data': 'Ваши секретные данные!'}

Но если вы ошиблись с учетными данными:

401

Это как знак “вход воспрещен” прямо здесь.

Глубокое Погружение

Исторически, HTTP Basic Auth - это старая добрая система веб-безопасности, простой способ секретного рукопожатия с веб-сайтом. Это не очень безопасно само по себе, потому что передает учетные данные в открытом виде, просто закодированные в base64 – не зашифрованные. Всегда используйте HTTPS, чтобы учетные данные не были так же легко перехватить, как конфету у ребенка.

Существуют более безопасные альтернативы, например, Digest Access Authentication, где пароль никогда не передается открыто по сети. OAuth - еще один важный, особенно для сегодняшних API. Это больше похоже на выдачу временного VIP-пропуска, чем на показ удостоверения личности каждый раз.

Под капотом, библиотека requests кодирует ваше имя пользователя и пароль и вставляет их в заголовок Authorization в формате Basic base64encodedcredentials. Сервер декодирует этот заголовок, проверяет ваши учетные данные, и если вы законный пользователь, предоставляет вам доступ.

См. Также