API UNIT ID
Запросы, которые доступны любому приложению: список сервисов UNIT, данные о человеке и его курсы.
Общие правила
- Адрес —
https://auth.labunit.ru, только HTTPS. - Ответы — JSON в UTF-8. Ошибка — HTTP-статус и тело
{"error": "код", "error_description": "текст"}. - Авторизация от имени человека — заголовок
Authorization: Bearer ACCESS_TOKEN. - Ответы с данными людей не кешируются (
Cache-Control: no-store).
Сервисы UNIT
GET/api/services
Открытый список сервисов UNIT — для меню «Сервисы UNIT» в вашем приложении. Без авторизации, кешируется на 5 минут.
curl https://auth.labunit.ru/api/services
{
"services": [
{"id": "unit-…", "name": "Школа UNIT", "url": "https://courses.labunit.ru",
"icon": "book", "tag": "школа", "description": "Курсы, задания и прогресс учеников"},
{"id": "unit-…", "name": "Лаборатория UNIT", "url": "https://app.labunit.ru",
"icon": "code", "tag": "лаборатория", "description": "Проекты, команда и мастерская"}
]
}
| Поле | Описание |
|---|---|
name, url | Название и адрес сервиса. |
icon | Имя значка: book, code, layers, grid, terminal, cpu, shield, chart, users, globe, chat и др. |
tag | Тег доступа: у кого он есть в unit_tags, тому сервис доступен. Пусто — доступен всем. |
Состав и порядок сервисов настраивает администратор UNIT — не зашивайте список в приложение, берите его отсюда.
Данные о человеке
GET/oauth/userinfo
Поля зависят от выданных прав — см. «Права и данные».
curl https://auth.labunit.ru/oauth/userinfo -H "Authorization: Bearer ACCESS_TOKEN"
| Статус | Когда |
|---|---|
200 | Данные человека. |
401 | Токена нет, он истёк или отозван. Заголовок WWW-Authenticate: Bearer error="invalid_token". |
Курсы человека
GET/api/id/courses
Курсы в школе UNIT и прогресс. Нужно право courses.
curl https://auth.labunit.ru/api/id/courses -H "Authorization: Bearer ACCESS_TOKEN"
{
"courses": [
{"id": "python-basics", "title": "Python: с нуля до первых программ",
"done": 46, "total": 270, "percent": 17}
]
}
| Статус | Когда |
|---|---|
200 | Список курсов (может быть пустым). |
403 | insufficient_scope — токен без права courses или недействителен. |
Описание сервера
GET/.well-known/openid-configuration
Стандартный документ OpenID Connect Discovery: адреса, поддерживаемые права, способы авторизации клиента (client_secret_basic, client_secret_post, none), алгоритм подписи (RS256). Библиотеки читают его сами.
GET/oauth/jwks
Открытые ключи для проверки id_token.