Аутентификация и вход в систему
Назначение
Раздел отвечает за безопасный вход пользователя в OCULUS, удержание рабочей сессии и контролируемое завершение работы. Модуль гарантирует, что в систему попадают только авторизованные сотрудники и каждый видит только данные своей организации.
Кто работает с модулем
- Мастер. Открывает рабочий день, управляет заданиями и сменами цеха. Главный пользователь веб-интерфейса.
- Администратор организации. Заводит сотрудников, сбрасывает им пароли, настраивает справочники.
- Оператор. Работает только в приложении OCULUS. В веб-интерфейс вход для роли оператора закрыт — он получит понятное сообщение об отказе.
- Все роли видят свой профиль и могут самостоятельно сменить пароль.
Внутренний режим технической поддержки (вход «от имени» другого сотрудника) предназначен для команды OCULUS и в клиентских сценариях не используется.
Основные сценарии
Вход в веб-интерфейс
- Пользователь открывает страницу входа.
- В форме два поля: «Логин» и «Пароль». Курсор уже стоит в поле логина — можно сразу печатать.
- После ввода нажимает «Войти». Кнопка показывает крутящуюся иконку загрузки и становится неактивной, пока система проверяет данные.
- При успехе пользователь попадает на главную аналитическую страницу. Имя и роль появляются в правом верхнем углу.
- Перед первым открытием рабочего пространства может появиться окно согласия на обработку персональных данных — это разовый шаг при первом входе или после изменения политики.
Вход в приложение OCULUS
- При первом запуске оператор видит экран входа с теми же двумя полями.
- В нижней части экрана — кнопка «Настройки сервера»: на случай, когда приложение работает с локальным сервером предприятия.
- После успешного входа приложение запоминает сессию и при следующих запусках открывает сразу рабочий экран — повторно вводить логин не нужно.
Выход и автоматическое завершение сессии
- Пользователь нажимает «Выход» в меню профиля — система возвращает его на форму входа.
- Если сессия истекла после долгого перерыва, система автоматически предлагает войти заново и показывает понятное сообщение, а не «пустой» экран.
Поля и данные
| Поле | Обязательно | Подсказки и правила |
|---|---|---|
| Логин | Да | До 50 символов, без пробелов. При незаполнении: «Имя пользователя обязательно». |
| Пароль | Да | Минимум один символ при входе. При незаполнении: «Пароль обязателен». Браузер может предложить ранее сохранённые значения, если пользователь это разрешал. |
Сообщение об ошибках входа сформулировано намеренно одинаково для случаев «нет такого пользователя» и «неверный пароль» — пользователь видит «Неверное имя пользователя или пароль». Это сделано, чтобы посторонний не смог по реакции системы перебирать существующие логины.
Заблокированный сотрудник получает отдельное сообщение: «Учётная запись заблокирована. Обратитесь к администратору». При этом счётчик неудачных попыток для него не растёт — это не ошибка ввода.
Смена пароля (из профиля)
| Поле | Обязательно | Правила |
|---|---|---|
| Текущий пароль | Да | Должен совпадать с действующим. Иначе: «Старый пароль неверный». |
| Новый пароль | Да | Не менее 8 символов. Минимум одна буква, одна цифра, один спецсимвол. Не должен совпадать со старым. |
| Подтверждение пароля | Да | Должно совпадать с новым. Иначе: «Пароли не совпадают». |
Пароль принимает любые символы из расширенного набора, включая !"#$%&'()*+,-./:;<=>?@[\]^_\{|}~` — для совместимости с любыми политиками безопасности предприятия. Под полем нового пароля показывается рекомендация: «Минимум 6 символов. Лучше 12+ с цифрами, символами и разным регистром».
Автоматика и подсказки системы
- Курсор автоматически встаёт в поле логина при открытии страницы.
- Браузер сам предлагает подставить ранее сохранённые логин и пароль, если пользователь это разрешал.
- Кнопка «Войти» блокируется на время отправки запроса, чтобы исключить двойные нажатия.
- Если сессия истекла во время работы (например, в фоновой вкладке), система незаметно продлевает её. Пользователь замечает это, только если перерыв был долгим — тогда его попросят войти повторно.
- При защите от перебора пароля система ведёт обратный отсчёт в реальном времени: цифра на экране каждую секунду уменьшается, и в момент разблокировки кнопка снова становится доступной.
- При смене пароля шкала надёжности заполняется по мере ввода — сразу видно, насколько пароль крепкий.
- В списке требований к новому паролю галочки появляются по мере выполнения каждого правила: длина, разный регистр, цифра, спецсимвол.
Микро-фичи и детали интерфейса
- Справа от поля «Пароль» расположена иконка глаза — клик переключает пароль из режима «звёздочки» в режим обычного текста и обратно. При переключении введённый текст сохраняется.
- Сообщения «нет такого пользователя» и «неверный пароль» намеренно объединены в одно: «Неверное имя пользователя или пароль». Это закрывает посторонним возможность перебирать существующие логины по реакции системы.
- При неуспешной попытке поле логина сохраняет введённый текст, а поле пароля очищается — повторная попытка занимает считанные секунды и не требует переввода логина.
- Заблокированная учётная запись получает отдельное сообщение и не расходует попытки защиты от перебора — система отличает «не пускают, потому что забанили» от «не пускают, потому что ошибся».
- В блоке защиты от перебора система показывает заранее, сколько попыток ещё осталось: «Осталось 2 из 12 попыток входа», — пользователь не упирается в стену молча.
- Сообщение о временной блокировке содержит точное время до разблокировки: «Слишком много неудачных попыток. Попробуйте через 234 сек», и таймер тикает на глазах.
- При успешном входе счётчик неудачных попыток автоматически обнуляется — одна ошибка, допущенная утром, не накапливается до вечера.
- На странице входа в веб-интерфейсе фоном работает мягкий «авроральный» градиент. Если в настройках устройства включена опция «уменьшить движение», градиент становится статичным — система уважает потребности доступности.
- Кнопка «Настройки сервера» в приложении OCULUS открывает диалог с проверкой соединения: после ввода адреса можно нажать «Проверить соединение» и получить мгновенный визуальный ответ — зелёную галочку или красный крест, не сохраняя адрес «вслепую».
- После сохранения адреса сервера кратко появляется подтверждение «Сохранено», после чего диалог можно закрыть.
- На странице входа есть статичная подсказка для забывчивых пользователей: «Если вы забыли пароль, обратитесь к мастеру или администратору вашей организации для его сброса» — без ссылок в никуда и без ложных обещаний автоматического восстановления.
- При смене пароля система отдельно проверяет, что новый пароль не совпадает со старым, и сообщает об этом отдельным сообщением — даже если оба пароля удовлетворяют правилам сложности.
- После успешной смены пароля форма очищается, появляется уведомление «Пароль успешно изменён», и под полем может отображаться отметка с датой и временем последнего изменения.
- Оператору, попытавшемуся войти в веб-интерфейс, показывается отдельное сообщение «Доступ разрешён только для ролей мастер и администратор» — без ложного предположения, что он ошибся паролем.
Связи с другими модулями
- Пользователи и роли. Логин и пароль создаются администратором в разделе пользователей. Там же выполняется сброс пароля, блокировка и разблокировка учётной записи.
- Профиль пользователя. Сразу после входа становится доступной личная карточка с ФИО, контактами, организацией и формой смены пароля. Изменения сохраняются под текущей сессией.
- Аналитика и задания. Точка приземления после входа зависит от роли и предыдущей точки выхода: мастер обычно видит аналитику цеха, оператор в OCULUS — список своих заданий.
- История действий. Каждый успешный и неуспешный вход фиксируется в журнале безопасности организации. Администратор видит, кто и откуда заходил, в разделе аудита.
- Согласие на обработку данных. Перед первым полноценным открытием рабочего пространства показывается экран согласия — он же повторно появляется, если политика обновилась.
Состояния и пограничные случаи
- Пустые поля. Кнопка «Войти» пропускает попытку, поля подсвечиваются, под ними появляются красные подсказки об обязательности.
- Несуществующий логин или неверный пароль. Одинаковое сообщение «Неверное имя пользователя или пароль». Поле логина сохраняет введённый текст, поле пароля очищается.
- Заблокированная учётная запись. Система не «заглатывает» попытку молча — показывает явное сообщение с просьбой обратиться к администратору. Защита от перебора в этом случае не активируется.
- Слишком много неудачных попыток. После 12 неудачных попыток за 5 минут вход для этого логина временно закрывается на 5 минут. Пользователь видит таймер с обратным отсчётом, кнопка «Войти» неактивна. По истечении срока всё разблокируется автоматически.
- Истекла сессия в фоне. При очередной операции система мягко возвращает пользователя на экран входа и сохраняет сообщение о том, что сессия завершилась.
- Долгий перерыв в работе. После нескольких дней простоя при следующей попытке система попросит пройти полный вход заново — это нормальное поведение.
- Двойная вкладка / двойной запуск. Один пользователь может работать одновременно в нескольких вкладках одного браузера или в браузере и приложении OCULUS — сессии не конфликтуют между собой.
- Сервер недоступен. Пользователь видит сообщение об ошибке соединения, форма остаётся заполненной, кнопка «Войти» снова активна — повторная попытка не требует переввода логина.
- Роль без доступа в веб. Оператор увидит понятное сообщение «Доступ разрешён только для ролей мастер и администратор» и предложение перейти в приложение OCULUS.
Операторский интерфейс OCULUS
- Кроме формы входа есть кнопка «Настройки сервера» — позволяет указать адрес локального сервера предприятия. На веб-интерфейсе этой возможности нет: адрес жёстко задан.
- В диалоге настроек сервера доступна проверка соединения с визуальной индикацией успеха или ошибки до сохранения адреса.
- После однократного успешного входа приложение хранит активную сессию в защищённом хранилище устройства — при следующих запусках экран входа не появляется, пока сессия не истечёт или пользователь не выйдет вручную.
- Сообщения об ошибках реализованы через всплывающий диалог с понятным текстом, а не встроенный алерт под формой — это удобнее на маленьких экранах в условиях цеха.
- При недоступном сервере пользователь видит конкретное сообщение об отсутствии связи, а не общее «Ошибка входа», — это помогает оператору понять, нужно ли проверить Wi-Fi цеха или связаться с поддержкой.