null

Авторизация Oauth2 EDX: Начало

О чем эта статья?

Зачастую приложения используют 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.