###################### **Авторизація** ###################### Для роботи з API користувачу для авторизації потрібні логін (email) та пароль. Авторизація API відбувається за допомогою передачі цих ключових параметрів в двох HTTP POST запитах (в два етапи). .. attention:: Авторизація відбувається в два кроки: 1) Користувачу необхідно відправити адресу своєї **електронної адреси** (метод **{url сервера}/bdoc/auth_uuid**). В відповідь на запит приходить **токен**. 2) Користувачу необхідно відправити **пароль** і отриманий **токен** з пункта 1, використовуючи метод **{url сервера}/bdoc/auth**. Після авторизації відбувається передача унікального cookie токена "SID". HTTP-заголовок відповіді сервера в вигляді "Set-Cookie" використовується для подальшої відправки файлів "Cookie". В кожному наступному запиті (виклику методу) повинен бути присутнім HTTP-заголовок (Header) "Cookie", який для коректного виконання запитів повинен містити токен "SID" зі значенням, отриманим при авторизації. В сучасних популярних браузерах і Rest клієнтах відбувається автоматичне збереження і передача токена на сервер під час сесії, однак при використанні деяких інтеграційних рішень, самописних REST-клієнтів цей обов'язковий параметр може не передаватись - його необхідно примусово передавати в заголовку (Header) "Cookie". Після авторизації час життя сесії при бездіяльності користувача становить 10 хвилин. **Авторизація (крок 1)** =========================== +--------------------------------------------------------------+-------------------------------------------------------------------------+ | **Метод запиту** | **HTTP POST** | +==============================================================+=========================================================================+ | **Content-Type** | multipart/form-data (елементи запиту передаются в інтерфейсі form-data) | +--------------------------------------------------------------+-------------------------------------------------------------------------+ | **URL запиту** | **https://doc.edin.ua/bdoc/auth_uuid** | +--------------------------------------------------------------+-------------------------------------------------------------------------+ | **Параметри, що передаються в URL (разом з адресою методу)** | -//- | +--------------------------------------------------------------+-------------------------------------------------------------------------+ При авторизації і тілі **запиту** обов'язково передається наступний параметр: .. code:: ruby email=[електронна пошта користувача] При успішній авторизації отримуємо у **відповідь** "токен авторизації", необхідний для подальшої роботи: .. code:: ruby { "isCaptcha": false, "token": "1ebe6825-0d1f-4577-a8d7-472650ce86b0" } **isCaptcha** - ознака відображення капчі для користувача **token** - токен авторизації -------------- **Авторизація (крок 2)** =========================== +--------------------------------------------------------------+-------------------------------------------------------------------------+ | **Метод запиту** | **HTTP POST** | +==============================================================+=========================================================================+ | **Content-Type** | multipart/form-data (елементи запиту передаются в інтерфейсі form-data) | +--------------------------------------------------------------+-------------------------------------------------------------------------+ | **URL запиту** | **https://doc.edin.ua/bdoc/auth** | +--------------------------------------------------------------+-------------------------------------------------------------------------+ | **Параметри, що передаються в URL (разом з адресою методу)** | -//- | +--------------------------------------------------------------+-------------------------------------------------------------------------+ В тілі **запиту** обов'язково передаються наступні параметри: .. code:: ruby token=[токен авторизації] password=[пароль користувача] При успішній авторизації отримуємо у **відповідь** на запит: код відповіді сервера 200 (ok)