Перейти к содержанию

Пользователи

http://<ip-платы>/users.html — admin-only. Локальная таблица пользователей платы.

Таблица

Список активных пользователей: username · role · действия.

Действия: ✏️ редактировать, 🗑️ удалить.

Себе кнопку 🗑️ платформа не показывает (защита от случайного removal'а собственной учётки).

Поля формы

Создание

Поле Назначение
Username Логин. Любая строка, регистр учитывается.
Password Пароль. Обязателен при создании.
Role Произвольная строка. Конвенция: admin, member.

Редактирование

Поле Назначение
Password Опционально — оставить пустым = не менять.
Role Только admin может менять чужую (и свою) роль.

Роли

Роли — это строки, не enum. Платформа не валидирует значение на бэке. Фронт решает по requireAuth({allowedRoles: [...]}) какие страницы пускать.

Из коробки используются:

Роль Доступ
admin Всё: настройки, пользователи, OTA, factory-reset, mesh-secret
member Дашборд, устройства (RO), задачи (RO), запуск toggle реле

Можно добавить кастомные роли (например kids — только конкретные реле), но без правки фронта они работать не будут. Если нужна гибкая ACL — это сейчас roadmap-фича.

Лимиты

Платформа USERS_MAX
ESP8266 5
ESP32 10

Дефолтный admin

При первой загрузке (или после factory-reset) в системе единственный пользователь:

admin / 1234

Пароль обязательно поменяйте сразу.

Удаление

Soft-delete: пользователь помечается active=false, но запись остаётся. Логин больше не работает.

Платформа не даст удалить последнего admin'а — попытка вернёт 400. Сначала создайте нового admin'а, потом удаляйте старого.

Безопасность

  • Пароли хранятся как sha256(password + password_salt). password_salt — 16 случайных байт, генерируется на первом запуске, кладётся в /config/secrets.json (gitignored).
  • Bearer-токены формата <userId>:<expiresEpoch>:<sha256(payload + token_secret)>. token_secret — те же 32 байта из secrets.json.
  • Lifetime токена: 1 час (session) или 30 дней (remember=true).
  • После uploadfs или factory-reset secrets.json пересоздаётся, и старые токены становятся невалидны. Все пользователи разлогинятся.

API за этой страницей

См. API → Users.