Есть несколько endpoint’ов. Auth, end1, end2. На auth регистрация юзера производится по user password, на end1 и end2 регистрация юзера производится по информации, которая находится внутри токена(внутри токена id, который отдал Auth после регистрации), чтобы id’шки на всех endpoint’ах совпадали. Сижу и думаю, как это всё правильно оформить. Итак, у нас есть мобильная аплека, которая регистрирует пользователя. Юзер ввел код, который прилетел ему от firebase и далее варианты развития событий
-
в апи Auth я добавляю код, который сначала создает юзера в Auth, потом идет на end1/register, создаёт юзера там, получает ответ 200, что всё ок, далее идет на end2/register, создает юзера и получает 200. Когда получил 200 от end1 & end2, отдаёт «ОК» клиенту. Тупой вариант. Почему? end1 и end2 могут не быть не в рабочем состоянии и получается так, что мы УЖЕ создали юзера в Auth(потому что без создания юзера мы не сможем отправить id в end1 & end2) и если end1 и/или end2 не работают, то мы получим отлуп клиенту при созданном юзере в Auth
-
юзер стучится в Auth, ему возвращается 200(ОК). Это считается завершением регистрации. Далее понятия не имею как правильно. Скорей всего нужно где-то в базе сделать поля end1_reg: False, end2_reg: False. Далее, при обращении к этому endpoint’у юзер смотрит на флаг end1_reg, если он False - обращается на end1/register, пока end1 не вернет 200 и флаг не станет True, а уже после этого начинает отправлять в end1 запросы в апи. Или сразу же после регистрации в Auth в фоне начинает стучаться на end1/register,end2/register, пока ему не вернется оттуда 200(ОК)
Как вообще правильно сделать?