Аутентификация¶
Дата актуализации: 16 сентября 2026 года.
Документ описывает, как в систему входят покупатели, сотрудники головной компании и сотрудники франчайзи: способы входа, приглашения, сессии на устройствах и что происходит при блокировке. Ссылки на техническую реализацию — в последнем разделе.
Кто и куда входит¶
| Кто | Куда | Как входит | Откуда берётся учётная запись |
|---|---|---|---|
| Покупатель | сайт и приложение сети | номер телефона и одноразовый код | создаётся при первом входе |
| Сотрудник головной компании | Админка ГК | email и пароль | первого администратора создают при установке системы |
| Сотрудник франчайзи | Личный кабинет ФЧ | email и пароль | по приглашению на рабочую почту |
Учётные записи трёх контуров не связаны между собой. Совпадение телефона или email их не объединяет: один человек может быть и покупателем, и сотрудником — это разные учётные записи. Сотрудник ГК и сотрудник ФЧ с одним и тем же email — тоже две разные учётные записи с разными паролями.
Покупатели¶
Детали входа покупателей согласованы в технической постановке и окончательно фиксируются перед реализацией.
Вход и регистрация¶
- Пароля нет: покупатель вводит номер телефона и получает одноразовый код из шести цифр.
- Код приходит по SMS, в Telegram или в MAX — канал выбирает покупатель. Если выбранный канал недоступен, например мессенджер не привязан к номеру, покупатель запрашивает код через другой канал; сама система канал не переключает.
- Код действует 10 минут, повторно запросить его можно через 2 минуты. После 5 неверных попыток код сгорает.
- При запросе кода по SMS на сайте нужно пройти капчу.
- Вход и регистрация — одно действие: после верного кода новый покупатель создаётся автоматически. Имя можно спросить после первого входа, повторно код для этого не нужен.
- Система не сообщает, зарегистрирован ли номер, — ответ одинаков для любого телефона.
- В Telegram-приложении сети покупатель входит без кода, по номеру, подтверждённому в Telegram. Для MAX такого входа нет: MAX только доставляет код.
Одна учётная запись на всю сеть¶
- Учётная запись действует во всех городах и ресторанах. Заказ в ресторане другого франчайзи не создаёт нового покупателя.
- Франчайзи видит только данные своих заказов и не видит историю покупателя в других ресторанах.
- Отключение франчайзи или ресторана не затрагивает учётную запись покупателя и его историю.
Устройства и сессии¶
- Покупатель может одновременно пользоваться сайтом и приложением на нескольких устройствах; каждое устройство входит независимо.
- Вход долгий: он продлевается при каждом использовании. Повторно вводить код придётся только после года без активности, после явного выхода или блокировки.
- Покупатель видит список своих устройств с автоматическими названиями, например «Chrome на macOS», и может завершить вход на любом из них.
- «Выйти» завершает вход на текущем устройстве, «Выйти на всех устройствах» — сразу на всех.
Переезд с текущего сайта¶
При запуске нового сайта покупатели не должны разлогиниться: новый сайт обменивает вход, сохранённый текущим сайтом, на новый. Такой обмен возможен в течение года после запуска. После «Выйти на всех устройствах» старый вход больше не принимается.
Блокировка¶
Заблокированный покупатель сразу теряет вход на всех устройствах, не может получить код и оформить заказ. Уже принятый и оплаченный заказ автоматически не отменяется — решение об отмене и возврате принимает сотрудник.
Вход поддержки под покупателем¶
Чтобы разобрать проблему покупателя, сотрудник головной компании с отдельным правом может войти под его учётной записью. Для этого он указывает причину и получает одноразовый код, действующий 10 минут. Каждый такой вход фиксируется в журнале.
Сотрудники головной компании¶
- Сотрудники входят в Админку ГК по email и паролю. Самостоятельной регистрации нет.
- Первый администратор создаётся при установке системы и получает временный пароль. При первом входе его обязательно нужно сменить; до смены доступны только смена пароля и выход.
- На старте есть одна роль — «Администратор» со всеми правами Админки ГК.
Сотрудники франчайзи¶
- Сотрудники входят в Личный кабинет ФЧ по email и паролю. Самостоятельной регистрации нет.
- Первого администратора франчайзи приглашает головная компания: после создания франчайзи на его рабочую почту уходит ссылка. Ссылка одноразовая и действует 72 часа. Пароль задаёт сам сотрудник — сотрудник ГК его не создаёт и не видит. Если ссылка истекла, ГК отправляет новое приглашение.
- Приглашение не сработает, если к моменту перехода по ссылке франчайзи или учётная запись отключены.
- Администратор франчайзи может приглашать своих сотрудников — такое право предусмотрено, сценарий будет описан отдельно.
- Сотрудник работает только в одном франчайзи и видит только его данные.
- На старте есть одна роль — «Администратор ФЧ».
- При отключении франчайзи все его сотрудники сразу теряют доступ. После повторного включения доступ возвращается всем, кроме тех, кого отключили вручную.
Общие правила для сотрудников¶
- Пароль — не короче 12 символов.
- При ошибке входа система не уточняет, что именно неверно: не существует такой email или не подходит пароль.
- Частота попыток входа ограничена — это защищает от подбора пароля.
- Вход сохраняется и после перезагрузки страницы, но не дольше 30 дней — затем нужно войти заново.
- Каждое устройство входит отдельно. «Выйти» завершает только текущее устройство, смена пароля или блокировка — все устройства сразу.
- Если человек работает и в головной компании, и у франчайзи, у него две учётные записи, и отключать при увольнении нужно обе.
- Входы, неудачные попытки, приглашения и изменения доступа фиксируются в журнале.
Что не предусмотрено¶
Окончательно: самостоятельная регистрация сотрудников.
Отложено и будет спроектировано позже:
- корпоративный вход и второй фактор для сотрудников головной компании;
- временный доступ поддержки и вход сотрудника ГК под сотрудником франчайзи;
- настраиваемые роли;
- мобильное приложение для сотрудников.
Состояние реализации¶
| Возможность | Состояние |
|---|---|
| Вход, выход и обязательная смена временного пароля в Админке ГК | реализовано на сервере |
| Создание первого администратора ГК при установке | реализовано |
| Приглашение, принятие приглашения, вход и выход сотрудника ФЧ | реализовано на сервере |
| Блокировка доступа сотрудников при отключении франчайзи | реализовано |
| Создание франчайзи и приглашение администратора из Админки ГК | в работе |
| Отправка приглашения на почту | запланировано |
| Журнал входов и изменений доступа | запланировано |
| Вход покупателей: код, вход/регистрация, refresh-сессии на нескольких устройствах, access JWT | реализовано на сервере; код доставляется реально по всем трём каналам (SMS, Telegram, MAX); для Telegram/MAX нужна разовая привязка контакта в боте |
| Профиль покупателя: просмотр, изменение имени с подсказками вариантов имени, указание даты рождения (один раз) | реализовано на сервере |
| Вход покупателей: список устройств, выход на всех устройствах, вход через Telegram | запланировано |
Открытые вопросы¶
- Как сотрудник ГК или ФЧ восстанавливает забытый пароль?
- Как заводятся следующие сотрудники головной компании после первого администратора?
- Как администратор франчайзи приглашает сотрудников и какие у них будут роли?
- Сможет ли новый сайт прочитать вход, сохранённый текущим сайтом? От этого зависит, удастся ли перевести покупателей без повторного входа.
Техническая реализация¶
- Доступ сотрудников — учётные записи, роли, приглашения, сессии и изоляция данных ГК и ФЧ.
- Доступ покупателей — граница покупательского контура.
- Модуль iam — реализация входа, сессий и приглашений сотрудников.
- Модуль customer — реализация входа и сессий покупателей.
- Модуль notifications — доставка кода по SMS, Telegram и MAX.
- Модуль storefront — HTTP-граница входа покупателей.
- Frontend-приложения — сессии в Админке ГК и Личном кабинете ФЧ.
- Вход покупателей — техническая постановка: коды, токены, сессии, миграция со старого сайта.