Перейти к содержанию

Процесс входа пользователя#

Пользователи процесса#

  • любой зарегистрированный пользователь

Предусловия#

  • Учетная запись пользователя зарегистрирована в системе.
  • Пользователь активировал учетную запись по ссылке-приглашению
  • Пользователь не авторизован в системе.

Точки входа#

  • Пользователь ввел в браузере адрес сервиса, либо перешел по ссылке из письма,

Варианты завершения#

  • Пользователь авторизовался в системе и попал на домашнюю страницу.
  • Пользователь авторизовался в системе и попал на страницу по первоначальной ссылке.
  • Пользователь не авторизовался в системе. На форме входа отобразилось сообщение о заблокированной учетной записи.
  • Пользователь не авторизовался в системе. На форме входа отобразилось сообщение о неверном email или пароле.

Процесс#

Общий вид#

Kroki

# Шаг
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
  1. Проверить наличие УЗ
    • если УЗ не существует, вывести сообщение о неверном логине или пароле.
  2. Если пароль правильный, выполнить авторизацю пользователя.
  3. Если пароль неправильный, выполнить обработку неправильного пароля.

Авторизация пользователя#

  1. Скинуть счетчик неудачных логинов: установить в атрибут УЗ user.passwordMistakeCounter значение 0
  2. Авторизовать пользователя
  3. Создать запись успешной авторизации в журнале аудита безопасности Security Log
  4. Переадресовать пользователя
    • если изначально пользователь заходил на определенный адрес -- на этот адрес
    • на домашнюю страницу

Обработка неправильного пароля#

@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. Увеличить на 1 значение атрибута user.passwordMistakeCounter
  2. Создать запись ошибки ввода пароля при логине в журнале аудита безопасности Security Log
  3. Если установлена превышено максимальное количество попыток входа, учетная запись блокируется.

Блокировка УЗ из-за превышения лимита ошибок в пароле#

  1. Изменить атрибут УЗ user.status проставить значение BLOCKED
  2. В атрибут УЗ user.statusReason проставить значение PASSWORD_MISTAKE
  3. Создать запись о блокировке учетной записи в журнале аудита безопасности Security Log

Интерфейс#

Форма логина#

img.png

Сообщение об ошибке логина или пароля#

img_1.png

Сообщение о заблокированной УЗ#

img_1.png

Полный набор макетов

Все макеты и состояния по ссылке Макеты Figma: Вход по логину и паролю

Выход пользователя из системы#

Кнопка выхода из системы:

  • макет
  • отображается:
    • всем пользователям
  • при нажатии пользователем:
    • сессия пользователя закрывается, пользователю отображается страница входа в систему (страница ввода логина и пароля)