Я пытаюсь использовать следующий подход к регистрации (я думаю, он похож на то, что делает твиттер):
A) Внешний интерфейс: пользователь вводит адрес электронной почты.
B) Бэкэнд: a код подтверждения отправляется на это письмо. проверочный код связан с некоторым токеном, и оба сохраняются в БД. токен отправляется в браузер и сохраняет токен как повар ie.
C) Внешний интерфейс: пользователь вводит код, а submit + browser отправляет полученный ранее токен.
D) Backend: 1. проверяет правильность кода, извлекая его из БД по токену. 2. отправляет новый токен для следующего этапа.
E) Внешний интерфейс: разрешите пользователю завершить регистрацию, добавив пароль и отображаемое имя. отправка этих + токенов с предыдущего шага проверки.
F) Backend: проверка токеном того, что пользователь подтвердил, является электронной почтой, а если пароль и отображаемое имя действительны, то создается аутентификационный токен, который будет использоваться в то время как пользователь вошел в систему и отправил его обратно в браузер.
G) Пользователь в настоящее время вошел в систему.
Мой вопрос: если пользователь создает новую вкладку и запускает новая регистрация (под другим адресом электронной почты), в то время как предыдущая не завершена. Тогда повар ie из шага B будет перезаписан тем, который относится к новому письму. поэтому завершить первую регистрацию будет невозможно.
Так ли это git? что только одна регистрация может происходить одновременно? Мой процесс делает с тех пор? Я пытался найти какое-нибудь руководство по его созданию, но не нашел.
Любое предложение будет оценено.