Сервис для того чтобы выполнять какие-то действия при переходе клиента по ссылке. Пока что умеет только восстанавливать пароль и применять промокоды. Ждёт разделения функционала
| .gitea/workflows | ||
| cmd | ||
| deployments | ||
| docs | ||
| internal | ||
| pkg/closer | ||
| template | ||
| tests | ||
| .env | ||
| .gitignore | ||
| blueprint.yaml | ||
| CHANGELOG.md | ||
| Dockerfile | ||
| go.mod | ||
| go.sum | ||
| README.md | ||
| Taskfile.dist.yml | ||
codeword
Это сервис обмена кодового слова на какие либо действия.
- Обмен кодового слова из ссылки, чтобы получить пару токенов и сменить пароль
- Обмен кодового слова промокода, чтобы создать персональную временную скидку
- Выполнение некоторой последовательности действий по нажатию на ссылку
Вот общая суть цель работы сервиса.
Конкретные сценарии
Восстановление пароля
Для того чтобы восстановить пароль, надо следующее:
- Сгенерировать ключ при помощи шифрования на эллиптических кривых
- По email, переданному в запросе, найти пользователя, для которого будем восстанавливать пароль
- Сложить в базу запись с подписью, айдишником, урлом перенаправления и датой создания
- Отправить на этот email письмо с ссылкой типа https://hub.pena.digital/codeword/restore/{signId}
- В обработчике таких ссылок получить из роута sign
- По ней найти запись, сложенную выше
- Если с момента создания прошло больше 15 минут, то вернуть ошибку
- Иначе, сходить на auth сервис на метод exchange, с которого получить пару токенов, которые вернуть запрашивающему