Вы хотите, чтобы каждая клиентская транзакция генерировала UID, который она отправляет вместе с запросом. Затем, если клиент попал в какой-либо сценарий повторения, пока он остается с тем же UID, ваш сервер может обнаружить запрос, который является дубликатом того, что он уже видел.
Существует множество способы создания этого типа UID. Вы можете буквально зачеркнуть время Date.now()
, а затем добавить случайный набор цифр из Math.random()
в конец. Это дает вам элемент времени плюс случайный элемент, который дает вам хорошую уникальную строку токена.
Существуют также некоторые стандарты в отношении этих типов строк UID. Вы можете прочитать различные ответы здесь: Создайте GUID / UUID в JavaScript? для некоторых библиотек, а для некоторых создайте свои собственные решения, следующие RF C 4122 .
Затем вашему серверу необходимо отслеживать набор входящих токенов UID, чтобы он мог определить, поступил ли запрос на токен, который уже был обработан.