Юзер вводит пароль и логин нажимает кнопку подвердить, эти данные отправляются на бек
Простейшая форма и обработчик.
на беке генерируется какой-то ключ
Функция для рандомной генерации ключа. Например,
так, но лучше написать свою.
и высылается юзеру на указанную почту
Так или
так, или <любой другой способ для отправки сообщения>.
жмёт потвердить, этот ключ отправляется на бек и сверяется с тем что был сгенерирован
Сгенерированный ключ нужно поместить в какое-нибудь хранилище типа БД (и задать параметры истечения срока кода, владельца кода, количества попыток ввода) и сверять при вводе пользователем.
жмёт потвердить, этот ключ отправляется на бек и сверяется с тем что был сгенерирован
Снова форма и обработчик.