Skip to content

Instantly share code, notes, and snippets.

@7iomka
Last active July 18, 2023 10:12
Show Gist options
  • Save 7iomka/ffd792296c84cfbadc80313d97a16599 to your computer and use it in GitHub Desktop.
Save 7iomka/ffd792296c84cfbadc80313d97a16599 to your computer and use it in GitHub Desktop.
Trusted order info flow

Faq по trusted-order-info flow

  1. Пользователь попадает из письма по ссылке вида /trusted-order-info/[id]
  2. На клиенте запрашиваем по id из квери параметров ссылки информацию о доверенном заказе (отдельное api) (id-шник это не айди заказа а уникальный айди связки заказа с текущим доверенным лицом которое привязано к заказу)
  3. Бекенд у себя чекает разрешения доступа по ссылке (проверяются из хедеров данные авторизованного юзера на предмет соответствия номера на который он регился с номером телефона доверенного лица этого заказа)
    1. Если пользователь не авторизован бэкенд должен выдать ошибку с дополнительными мета данными phone - номер телефона который будет вбит в гибридную форму авторизации-регистрации по телефону. После авторизации шлём повторно запрос на инфу о заказе. Сейчас бекенд должен всё успешно вернуть - на ui отображаем верстку.
    2. Если пользователь авторизован и телефон не совпадает с номером который привязан к привязанному доверенному лицу заказа - выдавать ошибку о запрете доступа по ссылке с конкретизацией причины.
  4. Отдельный апи ендпоинт на принятие доверенности пользователем (у доверенности меняется статус)

Опционально (требует обсуждения): После подтверждения доверенным лицом доверенности на получение заказа убрать проверку на идентичность номера авторизованного (как и требование к авторизации) - ссылка становится публичной, так как не представляет из себя того что требовало бы идентификации для совершения дополнительных действий.

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment