Процесс входа пользователя#
Пользователи процесса#
- любой зарегистрированный пользователь
Предусловия#
- Учетная запись пользователя зарегистрирована в системе.
- Пользователь активировал учетную запись по ссылке-приглашению
- Пользователь не авторизован в системе.
Точки входа#
- Пользователь ввел в браузере адрес сервиса, либо перешел по ссылке из письма,
Варианты завершения#
- Пользователь авторизовался в системе и попал на домашнюю страницу.
- Пользователь авторизовался в системе и попал на страницу по первоначальной ссылке.
- Пользователь не авторизовался в системе. На форме входа отобразилось сообщение о заблокированной учетной записи.
- Пользователь не авторизовался в системе. На форме входа отобразилось сообщение о неверном email или пароле.
Процесс#
Общий вид#
| # | Шаг |
|---|---|
| 1 | Пользователь вводит email и пароль в форме входа, нажимает кнопку Войти. |
| 2 | Система проверяет наличие учетной записи с таким email, ее статус и корректность пароля. |
| 3 | Если пароль правильный и первоначальная ссылка не вела на конкретную страницу, система авторизует пользователя и открывает домашнюю страницу |
| 3а | Если пароль правильный и первоначальная ссылка вела на конкретную страницу, система авторизует пользователя и открывает страницу по первоначальной ссылке |
| 3б | Если учетная запись существует, пароль правильный, но УЗ заблокирована, система отображает сообщение о блокировке. |
| 3в | Если учетная запись не существует, система отображает сообщение о неверном email или пароле. |
| 3г | Если пользователь ввел неверный пароль, система отображает сообщение о неверном email или пароле. |
| 3г.1 | Если пользователь исчерпал количество попыток ввода неверного пароля, система блокирует учетную запись и отображает сообщение о блокировке. |
Обработка данных входа#
@startuml
skinparam ConditionEndStyle hline
start
:Пользователь ввел\nemail и пароль;
if (УЗ с таким\nemail существует?) is (нет) then
:Сообщение об ошибке\nлогина или пароля; <<output>>
else (да)
if (Пароль правильный?) is (нет) then
:Обработка\nнеправильного\nпароля; <<procedure>>
else (да)
:Авторизация\n пользователя; <<procedure>>
endif
endif
end
@enduml
- Проверить наличие УЗ
- если УЗ не существует, вывести сообщение о неверном логине или пароле.
- Если пароль правильный, выполнить авторизацю пользователя.
- Если пароль неправильный, выполнить обработку неправильного пароля.
Авторизация пользователя#
- Скинуть счетчик неудачных логинов: установить в атрибут УЗ
user.passwordMistakeCounterзначение 0 - Авторизовать пользователя
- Создать запись успешной авторизации в журнале аудита безопасности Security Log
- Переадресовать пользователя
- если изначально пользователь заходил на определенный адрес -- на этот адрес
- на домашнюю страницу
Обработка неправильного пароля#
@startuml
skinparam ConditionEndStyle hline
start
:Сообщение об ошибке\nлогина или пароля; <<output>>
:Увеличить счетчик\nпопыток входа\nс неверным паролем на 1; <<procedure>>
:Создать запись в журнале аудита безопасности; <<procedure>>
if (В системе задано\nмаксимальное число\nпопыток входа\nс неправильным паролем?) is (да) then
if (Количество попыток > максимального?) is (да) then
:Блокировка УЗ\nиз-за превышения\nлимита ошибок в пароле; <<procedure>>
else (нет)
endif
else (нет)
endif
end
@enduml
- Увеличить на 1 значение атрибута
user.passwordMistakeCounter - Создать запись ошибки ввода пароля при логине в журнале аудита безопасности Security Log
- Если установлена превышено максимальное количество попыток входа, учетная запись блокируется.
Блокировка УЗ из-за превышения лимита ошибок в пароле#
- Изменить атрибут УЗ
user.statusпроставить значениеBLOCKED - В атрибут УЗ
user.statusReasonпроставить значениеPASSWORD_MISTAKE - Создать запись о блокировке учетной записи в журнале аудита безопасности Security Log
Интерфейс#
Форма логина#
Сообщение об ошибке логина или пароля#
Сообщение о заблокированной УЗ#
Полный набор макетов
Все макеты и состояния по ссылке Макеты Figma: Вход по логину и паролю
Выход пользователя из системы#
Кнопка выхода из системы:
- макет
- отображается:
- всем пользователям
- при нажатии пользователем:
- сессия пользователя закрывается, пользователю отображается страница входа в систему (страница ввода логина и пароля)

