Код выглядит следующим образом:
from pyotp import TOTP
In [180]: import datetime
In [181]: import time
In [182]: now = time.time()
In [183]: secret = 'base32secret3232'
In [184]: totp = TOTP(secret)
In [185]: totp.at(now)
Out[185]: '447195'
In [186]: totp.at(now+20)
Out[186]: '562455'
In [187]: totp.at(now+10)
Out[187]: '447195'
In [188]: totp.at(now+30)
Out[188]: '562455'
In [189]: totp.at(now+40)
Out[189]: '562455'
In [190]: totp.at(now+50)
Out[190]: '412255'
In [191]: totp.at(now+60)
Out[191]: '412255'
In [192]: totp.at(now+70)
Out[192]: '412255'
In [193]: totp.at(now+80)
Out[193]: '722023'
In [194]: totp.interval
Out[194]: 30
In [195]: now
Out[195]: 1582627336.8869653
У меня следующие вопросы:
- Почему код печатает один и тот же токен, даже если аргументы разные.
- Что, если разные пользователи попытаются сгенерировать токен в одном и том же временном окне (см. Окно 20-40 секунд), тогда они получат один и тот же токен. Если да, то как этого избежать?