Дата: 26.06.2017
Використання OAuth 2.0
OAuth 2.0 - це відкритий протокол авторизації, який дозволяє видати одному додатку (сервісу) права на до ресурсів користувача, що зберігаються у іншому додатку (сервісі). Протокол позбавляє необхідності довіряти додатку логін та пароль користувача, а також дозволяє видавати обмежений набір прав доступу, а не всі й одразу.
Для початку Вам необхідно зареєструвати свій додаток . Зареєстрованному додатку видається сгенерований унікальний номер клієнта client_id
та секретний ключ клієнта client_secret
, що будуть використовуватись у роботі з OAuth. Секретний ключ не повинен розповсюджуватись.
СХЕМА РОБОТИ OAuth
Спрощена схема роботи протоколу OAuth 2.0, що використовується Порталом наведена на малюнку нижче.
КРОК 1 - Запит НА АВТОРИЗАЦІЮ
Ваш веб або мобільний додаток повинен переспрямовувати користувачів на таку URL-адресу:
http://ucci-service.org/oauth/authorize
Наступні значення повинні бути передані як параметри GET запиту:
client_id
- видається при реєстрації вашого додатку (обов'язково)scope
- сфери застосування (обов'язково)redirect_uri
- посилання для переспрямовування (обов'язково)response_type
- задає тип відповідіstate
- параметр, який використовується для запобігання підробки, унікальний для користувача, який авторизується
КРОК 2 - Отримання гранту авторизаціїї
На сторінці авторизації у користувача запитується дозвіл на видання прав доступу до його ресурсів. Якщо користувач дає дозвіл на використання його ресурсів, відбувається переспрямовування на вказану URL-адресу(redirect_uri
) з додаванням гранту авторизації (code) до параметрів GET запиту
КРОК 3 - Запит на Отримання КЛЮЧУ ДОступу
Далі сервер Вашого додатку виконує POST-запит з отриманим грантом авторизації (code) в якості параметра.
Якщо все добре, обмінюйте code авторизації на токен доступу, використовуючи API метод oauth.access
http://ucci-sevice.org/oauth/access
client_id
- видається при реєстрації вашого додатку (обов'язково)client_secret
- видається при реєстрації вашого додатку (обов'язково)code
- тимчасовий код авторизації (обов'язково)redirect_uri
- повинен відповідати надіслланному раніше URI (якщо його було надіслано)
КРОК 4 - ОТРИМАННЯ КЛЮЧУ ДОСТУПУ
У відповідь на POST-запит Вам повернеться ключ доступу (token)
{
"ok": true,
"access_token": "xoxp-...-...",
"expires": 36000,
"account_id": 123
}
Надалі Ви використовуєте отриманий ключ доступу, я параметр, за викликів методів API від імені користувача. Ключ доступу буде функціонувати, доки користувач не видалить Ваш додаток та/або не вичерпається термін дії данного ключу.