О чем эта статья?
Зачастую приложения используют API других сервисов для получения данных. Сегодня мы рассмотрим интеграцию с EDX Maple с использованием защищенных эндпоинтов.
План действий
В первую очередь нам нужно создать пользователя, к аккаунту которого будет предоставлен доступ. Вы можете сами настроить необходимые права доступа, либо выдать статус суперпользователя с админке EDX. Сделать это можно в: Пользователи и группы -> Пользователи.
После этого надо зарегистрировать клиентское приложение в админке EDX - Django OAuth Toolkit -> Applications.
Необходимо выбрать пользователя, которого вы только что создали и выставить следующие параметры:
- Client type - Confidential
- Authorization grant type - Client credentials
Далее вы копируете Client id и Client secret в конфигурацию вашего приложения, они вам понадобятся для получения токена авторизации.
Чтобы получить этот токен авторизации, надо отправить запрос на <lms base url>/oauth2/access_token с параметрами:
- Method: POST
- Content-Type: application/x-www-form-urlencoded
- client_id=<client_id>
- client_secret=<client_secret>
- grant_type=<grant_type>
После чего прилетит токен авторизации, который необходимо выставить в заголовки запроса - Authorization: Bearer <access_token>.
Спойлеры
На этом теоретическая часть подходит к концу, а в следующей статье мы рассмотрим как сделать Retrofit interceptor, который будет авторизовать запросы к API.