Пометки для себя в будущем:
-
window это промежуток от времени на машине (телефон / сервер) в минутах (+ / -). Указывает что если код попадает в этот промежуток то он валидный. Если window 5, то мы смотрим в будущее на 5 * period секунд (и все коды в этом будущем) и в прошлое на 5 * period секунд (и все коды в этом прошлом) и проверяем что код подходит для любого из исходов.
-
Важно время на телефоне (аутификаторе в телефоне) и время на сервере (машине где происходит валидация кода)
-
(speakeasy кажется лучше)