Сервис для того чтобы выполнять какие-то действия при переходе клиента по ссылке. Пока что умеет только восстанавливать пароль и применять промокоды. Ждёт разделения функционала
Go to file
skeris 5963d48af8
All checks were successful
Deploy / CreateImage (push) Successful in 3m0s
Deploy / DeployService (push) Successful in 25s
fix taskfile
2025-01-11 15:54:25 +03:00
.gitea/workflows ci: add deployment rules 2025-01-04 17:01:27 +03:00
cmd added validate config 2025-01-04 17:01:27 +03:00
deployments fix taskfile 2025-01-11 15:54:25 +03:00
docs fix rpc svc 2024-04-28 10:11:39 +03:00
internal fix taskfile 2025-01-11 15:54:25 +03:00
pkg/closer replace mongo pkg add common 2024-02-02 15:34:03 +03:00
template init base struct 2023-12-29 14:30:20 +03:00
tests optimize cfg 2025-01-04 17:01:27 +03:00
.env optimize cfg 2025-01-04 17:01:27 +03:00
.gitignore fix taskfile 2025-01-11 15:54:25 +03:00
blueprint.yaml init base struct 2023-12-29 14:30:20 +03:00
CHANGELOG.md add changelog 2024-08-30 00:42:53 +03:00
Dockerfile ci: add deployment rules 2025-01-04 17:01:27 +03:00
go.mod added validate config 2025-01-04 17:01:27 +03:00
go.sum added validate config 2025-01-04 17:01:27 +03:00
README.md feat: add first scenario to readme 2023-12-09 00:00:40 +03:00
Taskfile.dist.yml fix taskfile 2025-01-11 15:54:25 +03:00

codeword

Это сервис обмена кодового слова на какие либо действия.

  • Обмен кодового слова из ссылки, чтобы получить пару токенов и сменить пароль
  • Обмен кодового слова промокода, чтобы создать персональную временную скидку
  • Выполнение некоторой последовательности действий по нажатию на ссылку

Вот общая суть цель работы сервиса.

Конкретные сценарии

Восстановление пароля

Для того чтобы восстановить пароль, надо следующее:

  • Сгенерировать ключ при помощи шифрования на эллиптических кривых
  • По email, переданному в запросе, найти пользователя, для которого будем восстанавливать пароль
  • Сложить в базу запись с подписью, айдишником, урлом перенаправления и датой создания
  • Отправить на этот email письмо с ссылкой типа https://hub.pena.digital/codeword/restore/{signId}
  • В обработчике таких ссылок получить из роута sign
  • По ней найти запись, сложенную выше
  • Если с момента создания прошло больше 15 минут, то вернуть ошибку
  • Иначе, сходить на auth сервис на метод exchange, с которого получить пару токенов, которые вернуть запрашивающему