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

Большинство запросов к API требуют аутентификации. В данный момент поддерживается два метода аутентификации: с помощью пароля, и с помощью аутентификационного токена.

Предпочтительная схема взаимодействия с API выглядит так:

  1. Получить аутентификационный токен с помощью метода get_authtoken. Этот запрос подтвердить логином и паролем пользователя.
  2. Дальнейшие запросы аутентифицировать полученным токеном, а пароль пользователя больше не использовать и не хранить.
  3. Если запрос к API провалился с кодом 403, то возможно токен был отозван пользователем. В этом случае нужно предложить пользователю снова ввести логин и пароль, получить новый токен с помощью get_authtoken и в дальнешем использовать его.

Аутентификация паролем

Просто укажите логин и пароль пользователя с помощью HTTP Basic Authentication. Это можно сделать либо встроенными средствами вашей http-библиотеки, либо указав заголовок: Authorization: Basic XXX, где XXX — это строка логин:пароль, закодированная в Base64.

import requests

result = requests.post(
    'https://plus.auto-scan.ru/api/get_authtoken',
    auth=('login', 'password'),
    headers={'X-ZONT-Client': 'your@email'},
    json={"client_name": "My cool app"}
).json()

Аутентификация с помощью токена

Укажите аутентификационный токен в заголовке X-ZONT-Token.

Пример:

import requests

result = requests.post(
    'https://plus.auto-scan.ru/api/some_method',
    headers={'X-ZONT-Client': 'your@email',
             'X-ZONT-Token': 'xxxxxxxxx'}
).json()

Mетод get_authtoken - Получение аутентификационного токена

POST https://plus.auto-scan.ru/api/get_authtoken

Возвращает аутентификационный токен для использования в дальнейшем для запросов от имени указанного пользователя.

Этот метод должен отправляться с аутентификацией по паролю.

Параметры

ИмяТипОписание
client_namestringчеловекопонятное название вашего приложения

Результат

В поле token будет строка — аутентификационный токен, который нужно указывать в заголовке X-ZONT-Token в последующих запросах.

import requests

result = requests.post(
    'https://plus.auto-scan.ru/api/get_authtoken',
    auth=('login', 'password'),
    headers={'X-ZONT-Client': 'your@email'},
    json={"client_name": "My cool app"}
).json()

token = result['token']