SHA256
Обновить pairing устройств и доработать ESP32 UI
This commit is contained in:
@@ -281,6 +281,7 @@ sha256$<hex( SHA-256("shine-pairing|" + lower(login.trim()) + "|" + password) )>
|
||||
Если на доверённом устройстве вход включён **без доп. пароля**, новое устройство может отправить пустой `passwordHash`.
|
||||
|
||||
Поле `trustedSessionOnline` показывает, что у пользователя сейчас есть хотя бы одна онлайн доверенная сессия, способная принять pairing-заявку.
|
||||
Поле `shortCode` теперь содержит `10` цифр. В UI его рекомендуется показывать как `5` пар, например: `49 20 70 91 23`.
|
||||
|
||||
TTL заявки фиксирован на сервере и сейчас всегда равен `300` секундам.
|
||||
|
||||
@@ -295,7 +296,7 @@ TTL заявки фиксирован на сервере и сейчас все
|
||||
"payload": {
|
||||
"pairingId": "base64url",
|
||||
"state": "created",
|
||||
"shortCode": "4920709",
|
||||
"shortCode": "4920709123",
|
||||
"fingerprintB58": "ASvYDPQidnAroKzQjtCjTuEQE8ckktV5nmmhYRhDzGaA",
|
||||
"expiresAtMs": 1781441990538,
|
||||
"trustedSessionOnline": true
|
||||
@@ -337,7 +338,7 @@ TTL заявки фиксирован на сервере и сейчас все
|
||||
"requesterSessionType": 1,
|
||||
"requesterClientPlatform": "Android",
|
||||
"payloadType": 1,
|
||||
"shortCode": "4920709",
|
||||
"shortCode": "4920709123",
|
||||
"fingerprintB58": "ASvYDPQidnAroKzQjtCjTuEQE8ckktV5nmmhYRhDzGaA",
|
||||
"createdAtMs": 1781441810538,
|
||||
"expiresAtMs": 1781441990538,
|
||||
@@ -425,7 +426,7 @@ TTL заявки фиксирован на сервере и сейчас все
|
||||
"payload": {
|
||||
"pairingId": "base64url",
|
||||
"state": "approved",
|
||||
"shortCode": "4920709",
|
||||
"shortCode": "4920709123",
|
||||
"fingerprintB58": "ASvYDPQidnAroKzQjtCjTuEQE8ckktV5nmmhYRhDzGaA",
|
||||
"payloadType": 1,
|
||||
"encryptedPayload": "AQIDBA==",
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
# Быстрое скрытие экрана звонка и остановка гудков при отклонении
|
||||
|
||||
- краткое описание фичи:
|
||||
- Исправлена нижняя подпись вкладки личных сообщений на `личные`.
|
||||
- Исправлена логика звонка, когда одна из входящих сессий отклоняет вызов до принятия: исходящая сессия теперь должна прекращать гудки даже если ранее `RINGING` пришёл от другой входящей сессии.
|
||||
- На устройстве, где пользователь нажимает отмену/сброс звонка, экран вызова теперь скрывается сразу локально, без ожидания сетевого ответа.
|
||||
|
||||
- что именно проверять:
|
||||
- В нижней панели с 5 кнопками подпись первой кнопки должна отображаться как `личные`.
|
||||
- Сценарий: один пользователь звонит, у второго входящий вызов приходит на несколько устройств; на любом одном входящем устройстве нажать `Сбросить`.
|
||||
- Проверить, что у звонящего сразу прекращаются гудки и экран вызова корректно завершается.
|
||||
- Проверить, что на устройстве, где нажали `Сбросить` или `Положить трубку`, overlay звонка исчезает сразу, без заметной задержки.
|
||||
- Проверить, что после принятия звонка на одном устройстве поздние отмены с других устройств не ломают уже выбранную пару соединения.
|
||||
|
||||
- ожидаемый результат:
|
||||
- Подпись в нижней панели корректная.
|
||||
- При отклонении входящего звонка любым устройством звонящего не оставляет в состоянии бесконечных гудков.
|
||||
- Локальный экран звонка скрывается мгновенно после нажатия кнопки отмены.
|
||||
- Уже зафиксированный сценарий соединения после `ACCEPT` не сбивается другими сессиями.
|
||||
|
||||
- статус:
|
||||
- `pending`
|
||||
@@ -0,0 +1,24 @@
|
||||
# ESP32 homeserver: заявки на подключение устройств
|
||||
|
||||
- краткое описание фичи:
|
||||
- на ESP32 homeserver в `SETTINGS` добавлен первый пункт `Device requests`, который появляется только после авторизации homeserver в SHiNE;
|
||||
- экран показывает список активных pairing-заявок, позволяет открыть каждую заявку и подтвердить или отклонить её;
|
||||
- формат кода подключения изменён на `10` цифр и показывается как `5` пар.
|
||||
|
||||
- что проверять:
|
||||
- на обычном клиенте и в wallet-plugin код отображается как `XX XX XX XX XX`;
|
||||
- на доверенном веб-клиенте экран `Подключить по коду` показывает все активные заявки без поля ручного ввода;
|
||||
- на ESP32 после успешной homeserver-авторизации в `SETTINGS` появляется пункт `Device requests` первым;
|
||||
- `REFRESH` реально загружает активные заявки;
|
||||
- на экране видно две плитки, список листается вертикально;
|
||||
- client-session заявка после `YES` подключается с передачей только `device key`;
|
||||
- wallet-session заявка после `YES` подключается без передачи ключей, через выпуск отдельной wallet-session;
|
||||
- `NO` отклоняет заявку и она исчезает из списка активных.
|
||||
|
||||
- ожидаемый результат:
|
||||
- все три клиента используют единый формат кода;
|
||||
- активные заявки видны без ручного ввода кода;
|
||||
- ESP32 может одобрять и отклонять живые pairing-заявки пользователя.
|
||||
|
||||
- статус:
|
||||
- pending
|
||||
@@ -60,7 +60,7 @@
|
||||
|
||||
- хранит включённость pairing и optional `passwordHash` в формате `sha256$<hex>`;
|
||||
- хранит pairing-заявки всех статусов, но в список активных для доверённого устройства отдаёт только pending `created`;
|
||||
- рассчитывает короткий код `shortCode` из `7` цифр;
|
||||
- рассчитывает короткий код `shortCode` из `10` цифр;
|
||||
- рассчитывает длинный `fingerprintB58` из `SHA-256` заявки;
|
||||
- уведомляет онлайн доверенные сессии событием `IncomingEspPairingRequest`, если такие сессии подключены;
|
||||
- хранит переданный `encryptedPayload` как непрозрачную строку и не анализирует его содержимое.
|
||||
|
||||
Reference in New Issue
Block a user