Учебники

Python — HTTP-аутентификация

Аутентификация — это процесс определения того, поступил ли запрос от действительного пользователя, обладающего необходимыми привилегиями для использования системы. В мире компьютерных сетей это очень важное требование, так как многие системы продолжают взаимодействовать друг с другом, и необходим надлежащий механизм для обеспечения того, чтобы между этими программами происходили только допустимые взаимодействия.

Запросы имен модулей Python имеют встроенную функцию для вызова различных API, предоставляемых обслуживающими веб-приложениями, наряду с учетными данными пользователя. Эти учетные данные должны быть встроены в вызывающую программу. Если API-интерфейсы подтверждают это успешно, то происходит действительный вход в систему.

Установка запросов

Мы устанавливаем необходимый модуль python с именем запросы для запуска программы аутентификации.

pip install requests

Аутентификация в Github

Ниже мы видим простой механизм аутентификации, включающий только имя пользователя и пароль. Успешный ответ указывает на действительный логин.

import requests 
r = requests.get('https://api.github.com/user', auth=('user', 'pass'))
print r

Когда мы запускаем вышеуказанную программу, мы получаем следующий вывод:


Аутентификация в Твиттере

Мы также можем запустить программу, использующую API Twitter и успешно войти в систему, используя следующий код. Мы используем метод OAuth1, доступный в модуле запросов, для обработки параметров, требуемых API Twitter. Как мы видим, модуль запросов способен обрабатывать более сложный механизм аутентификации, включающий ключи и токены, а не только механизм имени пользователя и пароля.

import requests
from requests_oauthlib import OAuth1

url = 'https://api.twitter.com/1.1/account/verify_credentials.json'
auth = OAuth1('YOUR_APP_KEY', 'YOUR_APP_SECRET',
              'USER_OAUTH_TOKEN', 'USER_OAUTH_TOKEN_SECRET')

requests.get(url, auth=auth)

Когда мы запускаем вышеуказанную программу, мы получаем следующий вывод:

{
  "errors": [
    {
      "code": 215,
      "message": "Bad Authentication data."
    }
  ]
}

Но используя правильные значения параметров OAuth1, вы получите успешный ответ.