我使用django-otp生成hot,我还没有找到正确生成热令牌的文档
所以我阅读了HOTPDevice
模型类中的verify_token
方法,了解了如何验证令牌
if hotp(key, counter, self.digits) == token:
verified = True
self.counter = counter + 1
self.save()
从上面我知道我可以使用hotp
函数创建令牌。
因此,我使用hotp函数来生成令牌,但我注意到,当未确认时,它会重复返回相同的令牌。那么,在生成counter
时,我也应该增加它吗?
来源:HOTPDevice来源于django-otp
所以我找到了RFC 4226中的引用-HOTP,
HOTP客户端(硬件或软件令牌(递增其计数器然后计算下一个HOTP值HOTP客户端
所以我应该先递增counter
,将其保存到对象中,然后返回生成的令牌