API Возможностей ID
Подключите вход через Возможностей ID к любому приложению Академии. Протокол — OAuth 2.0, «Authorization Code». Базовый адрес: https://id.akademiavozm.ru
Черновик спецификации. Адреса и поля можно менять, пока бэкенд не реализован.
Быстрый старт
- Зарегистрируйте приложение и получите
client_idиclient_secret. - Укажите
redirect_uri, напримерhttps://form.akademiavozm.ru/auth/callback. - Добавьте кнопку «Войти через Возможностей ID», которая ведёт на
/oauth/authorize.
Схема входа
Приложение → id.akademiavozm.ru/oauth/authorize
Пользователь входит и разрешает доступ
ID → redirect_uri?code=...&state=...
Приложение → POST /oauth/token (code → access_token)
Приложение → GET /api/v1/userinfo (данные пользователя)
Авторизация
GET/oauth/authorize
| Параметр | Описание |
|---|---|
client_id | Идентификатор приложения |
redirect_uri | Адрес возврата, заранее зарегистрированный |
response_type | Всегда code |
scope | Список прав через пробел |
state | Случайная строка для защиты от подделки запроса |
https://id.akademiavozm.ru/oauth/authorize
?client_id=form
&redirect_uri=https://form.akademiavozm.ru/auth/callback
&response_type=code&scope=profile%20email&state=x7Hk2
Получение токена
POST/oauth/token
curl -X POST https://id.akademiavozm.ru/oauth/token \
-d grant_type=authorization_code \
-d code=CODE \
-d client_id=form \
-d client_secret=SECRET \
-d redirect_uri=https://form.akademiavozm.ru/auth/callback
{
"access_token": "vid_at_...",
"token_type": "Bearer",
"expires_in": 3600,
"refresh_token": "vid_rt_..."
}
Данные пользователя
GET/api/v1/userinfo
curl https://id.akademiavozm.ru/api/v1/userinfo \
-H "Authorization: Bearer vid_at_..."
{
"id": "u_100245",
"name": "Иван Петров",
"email": "ivan@example.ru",
"avatar": "https://id.akademiavozm.ru/avatars/u_100245.jpg"
}
Права доступа
| Scope | Что даёт |
|---|---|
profile | Имя и аватар |
email | Почта |
offline | Refresh-токен для долгой сессии |
Ошибки
| Код | Причина |
|---|---|
400 invalid_request | Не хватает параметра |
401 invalid_token | Токен просрочен или неверный |
403 access_denied | Пользователь отклонил доступ |
429 rate_limited | Слишком много запросов |
