Есть функционал логина, я шлю запрос(например, api/v1/user/login/) шлю почту и пароль и если всё ок, я создал бы сессию и отдал бы с куками токены. Но я хочу внедрить 2 factor auth с one time password. Это означает, что мне нужно в начале послать запрос на api/v1/user/login/ и проверить что юзер ввел правильные данные и чтобы пустить его дальше и выдать токены нужно принять после этого шага 6 значный код с приложения для аутентификации например на api/v1/user/2fa/code/ или ввести recovery code по адресу api/v1/user/2fa/recovery/ и только после успеха одного из этих шагов я выдам токены c доступами к остальной части api. Как мне построить зависимость что в начале должен пройти успешный логин а потом 2fa. Как можно такое построить?
1. Отправляешь логин и пароль. На бэкенде находишь пользовател, генерируешь код, который сначала записываешь в какое-то хранилище и обязательно этому коду присвой уникальный идентификатор и запиши id пользователя , затем код отправляешь в смс, а в качестве ответа на запрос верни идентификатор.
2. Отправляешь запрос на 2фа. В запросе передашь полученный идентфикатор и код смс. Делаешь запрос в хранилище. Если данные совпадают - авторизовываешь