Вход и время жизни сессии: хранилище ключей, heartbeat, офлайн-отсрочка

Настольное приложение Senzoukria разблокируется email и паролем веб-аккаунта. Токен сессии живёт 15 минут и продлевается heartbeat каждые 5 минут; после 30 минут без успешного продления приложение выходит из системы.

Senzoukria · Документация · Обновлено: сентябрь 2026


Где найти

Где
Меню Sz → «Аккаунт»; каждый защищённый маршрут перенаправляет туда, когда сессии нет
Учётные данные
«Сохранить мои учётные данные (хранилище ключей ОС)» отмечено по умолчанию; пароль уходит в системное хранилище учётных данных, никогда в файл
Токен
Время жизни 15 минут, heartbeat каждые 5 минут, повтор каждые 60 с, выход после 30 минут без продления

Как это работает

Форма входа запрашивает email и пароль и показывает примечание: «Приложение заблокировано до входа в систему. Используйте email и пароль вашего веб-аккаунта Senzoukria — вход на сайте не разблокирует настольное приложение.» При самом первом запуске, до появления какой-либо сессии, карточка приветствия предлагает «Зарегистрироваться на сайте» и «У меня уже есть аккаунт».

Когда учётные данные сохранены, форма заполняется из хранилища ключей и один раз отправляется автоматически при первом монтировании процесса. После выхода форма снова заполняется, но ждёт нажатия, поэтому автовход не отменяет ваш выход. Неудачный автовход сохраняет учётные данные: один сбой сети не должен стирать запомненный логин.

Жизненный цикл сессии

Тайминги и правила, прочитанные из кода heartbeat
ПравилоЗначениеДействие
Время жизни токена15 минутСерверный JWT истекает; продление — задача heartbeat
Интервал heartbeat5 минутПродлевает токен и заново проверяет лицензию, подписку и машину
Повтор после временного сбоя60 секундСетевые ошибки, 429 или 503 повторяются; счётчик отсрочки они не сбрасывают
Максимум без продления30 минутСверх этого приложение выходит из системы локально
Окончательный отказHTTP 4xx, кроме 408, 425, 429Немедленный выход; повторный вход по паролю не выполняется, поэтому отозванная машина не создаётся заново
ПробуждениеФокус окна, событие online, видимая вкладкаЗапускает назревший heartbeat, не добавляя запросов, когда сессия свежая
Кнопка обновленияСтраница аккаунтаВыполняет один heartbeat вручную: «Продлить токен сессии через heartbeat»

Как этим пользоваться

Введите email и пароль веб-аккаунта и оставьте флажок включённым, если это ваша машина. Ссылка «Забыли пароль? Регистрировались через Google?» открывает сайт: у аккаунта Google нет пароля, пока он там не задан, и приложение не умеет входить через Google напрямую.

Выход со страницы аккаунта завершает сессию, но сохраняет запись в хранилище ключей; снимите флажок при следующем входе, чтобы её очистить. Строка обратной связи сообщает: «Вы вышли из системы — войдите ниже, чтобы восстановить доступ.»

Ограничения и подводные камни

Сообщения об ошибках и их смысл:

  • «Неверный email или пароль.» — INVALID_CREDENTIALS от сервера.
  • «Этот аккаунт входит через Google. Воспользуйтесь ссылкой «Забыли пароль?» ниже, чтобы задать пароль, затем войдите здесь.»
  • «Для использования настольного приложения нужна подписка PRO.» и «Срок вашей подписки истёк.» — лицензия проверяется при входе и при каждом heartbeat.
  • «Эта лицензия уже используется на максимальном числе машин.» — освободите слот на странице устройств сайта.
  • «Аккаунт временно заблокирован. Повторите через несколько минут.» — после серии неудачных попыток.
  • Сетевая ошибка не делает пароль недействительным; сообщение прямо говорит не сбрасывать его.
  • Если запись в хранилище ключей не удалась, приложение всё равно выполняет вход и показывает настоящую ошибку вместо того, чтобы делать вид, что данные сохранены.

Эта страница на других языках

Частые вопросы

Почему меня выкинуло после работы офлайн?
Сессии нужен один успешный heartbeat каждые 30 минут. Без сети дольше этого срока приложение выходит из системы локально; войдите снова, когда сеть появится.
Хранит ли приложение мой пароль в файле?
Нет. При включённом «Сохранить мои учётные данные» пароль уходит в хранилище ключей ОС (Credential Manager, Keychain или Secret Service). Токенами сессии занимается сторона Rust.
Я вошёл на senzoukria.com. Почему настольное приложение всё ещё заблокировано?
Сессия сайта и сессия приложения разделены. Используйте тот же email и пароль в форме входа приложения.