Авторизация¶
Большинству команд API требуется авторизация. Для этого команды требуют в качестве обязательного параметра так называемый авторизационный токен — массив байтов, однозначно идентифицирующий пользователя. Кроме того, во все методы интеграторского интерфейса требуется передавать так называемый “ключ разработчика” — уникальный строковый идентификатор интегратора. Интегратор не должен передавать свой “ключ разработчика” третьим лицам.
Для передачи авторизационной информации с каждым запросом используется стандатрный HTTP-заголовок Authorization. Схема аутентификации, используемая системой EDI.Контур, называется KonturEdiAuth. Для нее определены следующие параметры:
- konturediauth_api_client_id служит для передачи ключа разработчика;
- konturediauth_token служит для передачи авторизационного токена;
- konturediauth_login служит для передачи логина (используется только в момент получения авторизационного токена);
- konturediauth_password служит для передачи пароля (используется только в момент получения авторизационного токена).
Значения параметров отделяются от их имен символами ‘=’. Параметры разделяются символами ‘,’. Например:
Authorization: KonturEdiAuth konturediauth_api_client_id=testClient-8ee1638deae84c86b8e2069955c2825a, konturediauth_token=3IU0iPhuhHPZ6lrlumGz4pICEedhQ1XmlMN1Pk8z0DJ51MXkcTi6Q3CODCC4xTMsjPFfhK6XM4kCJ4JJ42hlD499/Ui5WSq6lrPwcdp4IIKswVUwyE0ZiwhlpeOwRjNrvUX1yPrxr0dY8a0w8ePsc1DG8HAlZce8a0hZiWylMqu23d/vfzRFuA==
Таким образом, общая последовательность действий, которые требуется совершить при обращении к функциям интеграторского интерфейса, следующая:
- Получить авторизационный токен, отправив запрос на сервер и передав ключ разработчика, а также логин и пароль пользователя с помощью команды Authenticate.
- Во все остальные методы передавать кроме ключа разработчика авторизационный токен.
Important
Нет необходимости авторизоваться перед каждым запросом. Авторизационный токен действителен до 12 часов, поэтому кэшируйте его. При устаревании токена в ответ на запрос сервер возвращает HTTP-код 401 (Unauthorized). В этом случае повторите запрос Authenticate и используйте новый токен.