Skip to content
Эта страница создана и переведена с помощью ИИ. Если вы заметили неточности, помогите нам улучшить её. Редактировать на GitHub

Аутентификация

OpenPR использует JWT (JSON Web Tokens) для аутентификации пользователей и токены ботов для доступа AI-ассистентов и MCP-сервера.

Аутентификация пользователей (JWT)

Регистрация

Создайте новый аккаунт:

bash
curl -X POST http://localhost:8080/api/auth/register \
  -H "Content-Type: application/json" \
  -d '{
    "email": "[email protected]",
    "name": "John Doe",
    "password": "SecurePassword123"
  }'

Ответ:

json
{
  "code": 0,
  "message": "success",
  "data": {
    "user": {
      "id": "uuid",
      "email": "[email protected]",
      "name": "John Doe",
      "role": "user"
    },
    "access_token": "eyJ...",
    "refresh_token": "eyJ..."
  }
}

Первый пользователь

Первый зарегистрированный пользователь автоматически получает роль admin. Все последующие пользователи по умолчанию получают роль user.

Вход

bash
curl -X POST http://localhost:8080/api/auth/login \
  -H "Content-Type: application/json" \
  -d '{
    "email": "[email protected]",
    "password": "SecurePassword123"
  }'

Ответ включает access_token, refresh_token и информацию о пользователе с role.

Использование токена доступа

Включите токен доступа в заголовок Authorization для всех аутентифицированных запросов:

bash
curl -H "Authorization: Bearer eyJ..." \
  http://localhost:8080/api/workspaces

Обновление токена

Когда истекает срок действия токена доступа, используйте токен обновления для получения новой пары:

bash
curl -X POST http://localhost:8080/api/auth/refresh \
  -H "Content-Type: application/json" \
  -d '{"refresh_token": "eyJ..."}'

Получение текущего пользователя

bash
curl -H "Authorization: Bearer eyJ..." \
  http://localhost:8080/api/auth/me

Возвращает профиль текущего пользователя, включая role (admin/user).

Конфигурация токена

Время жизни JWT-токенов настраивается через переменные окружения:

ПеременнаяПо умолчаниюОписание
JWT_SECRETchange-me-in-productionСекретный ключ для подписи токенов
JWT_ACCESS_TTL_SECONDS2592000 (30 дней)Время жизни токена доступа
JWT_REFRESH_TTL_SECONDS604800 (7 дней)Время жизни токена обновления

Безопасность продакшена

Всегда устанавливайте JWT_SECRET как надёжное случайное значение в продакшене. Значение по умолчанию небезопасно.

Аутентификация токенами ботов

Токены ботов обеспечивают аутентификацию для AI-ассистентов и автоматизированных инструментов. Они ограничены рабочим пространством и используют префикс opr_.

Создание токенов ботов

Токены ботов управляются через UI настроек рабочего пространства или API:

bash
curl -X POST http://localhost:8080/api/workspaces/<workspace_id>/bots \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <admin_token>" \
  -d '{"name": "Claude Assistant"}'

Использование токенов ботов

Токены ботов используются так же, как JWT-токены:

bash
curl -H "Authorization: Bearer opr_abc123..." \
  http://localhost:8080/api/workspaces/<workspace_id>/projects

Свойства токена бота

СвойствоОписание
Префиксopr_
ОбластьОдно рабочее пространство
Тип сущностиСоздаёт сущность пользователя bot_mcp
РазрешенияАналогичны участнику рабочего пространства
Журнал аудитаВсе действия записаны под пользователем-ботом

Сводка эндпоинтов аутентификации

ЭндпоинтМетодОписание
/api/auth/registerPOSTСоздать аккаунт
/api/auth/loginPOSTВойти и получить токены
/api/auth/refreshPOSTОбновить пару токенов
/api/auth/meGETПолучить информацию о текущем пользователе

Следующие шаги

Released under the Apache-2.0 License.