Пользователи¶
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) в системе единственный пользователь:
Пароль обязательно поменяйте сразу.
Удаление¶
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.