Аутентификация
OpenPR использует JWT (JSON Web Tokens) для аутентификации пользователей и токены ботов для доступа AI-ассистентов и MCP-сервера.
Аутентификация пользователей (JWT)
Регистрация
Создайте новый аккаунт:
curl -X POST http://localhost:8080/api/auth/register \
-H "Content-Type: application/json" \
-d '{
"email": "[email protected]",
"name": "John Doe",
"password": "SecurePassword123"
}'Ответ:
{
"code": 0,
"message": "success",
"data": {
"user": {
"id": "uuid",
"email": "[email protected]",
"name": "John Doe",
"role": "user"
},
"access_token": "eyJ...",
"refresh_token": "eyJ..."
}
}Первый пользователь
Первый зарегистрированный пользователь автоматически получает роль admin. Все последующие пользователи по умолчанию получают роль user.
Вход
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 для всех аутентифицированных запросов:
curl -H "Authorization: Bearer eyJ..." \
http://localhost:8080/api/workspacesОбновление токена
Когда истекает срок действия токена доступа, используйте токен обновления для получения новой пары:
curl -X POST http://localhost:8080/api/auth/refresh \
-H "Content-Type: application/json" \
-d '{"refresh_token": "eyJ..."}'Получение текущего пользователя
curl -H "Authorization: Bearer eyJ..." \
http://localhost:8080/api/auth/meВозвращает профиль текущего пользователя, включая role (admin/user).
Конфигурация токена
Время жизни JWT-токенов настраивается через переменные окружения:
| Переменная | По умолчанию | Описание |
|---|---|---|
JWT_SECRET | change-me-in-production | Секретный ключ для подписи токенов |
JWT_ACCESS_TTL_SECONDS | 2592000 (30 дней) | Время жизни токена доступа |
JWT_REFRESH_TTL_SECONDS | 604800 (7 дней) | Время жизни токена обновления |
Безопасность продакшена
Всегда устанавливайте JWT_SECRET как надёжное случайное значение в продакшене. Значение по умолчанию небезопасно.
Аутентификация токенами ботов
Токены ботов обеспечивают аутентификацию для AI-ассистентов и автоматизированных инструментов. Они ограничены рабочим пространством и используют префикс opr_.
Создание токенов ботов
Токены ботов управляются через UI настроек рабочего пространства или API:
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-токены:
curl -H "Authorization: Bearer opr_abc123..." \
http://localhost:8080/api/workspaces/<workspace_id>/projectsСвойства токена бота
| Свойство | Описание |
|---|---|
| Префикс | opr_ |
| Область | Одно рабочее пространство |
| Тип сущности | Создаёт сущность пользователя bot_mcp |
| Разрешения | Аналогичны участнику рабочего пространства |
| Журнал аудита | Все действия записаны под пользователем-ботом |
Сводка эндпоинтов аутентификации
| Эндпоинт | Метод | Описание |
|---|---|---|
/api/auth/register | POST | Создать аккаунт |
/api/auth/login | POST | Войти и получить токены |
/api/auth/refresh | POST | Обновить пару токенов |
/api/auth/me | GET | Получить информацию о текущем пользователе |
Следующие шаги
- Справочник эндпоинтов — полная документация API
- MCP-сервер — использование токенов ботов с MCP
- Участники и разрешения — ролевой контроль доступа