Django rest framework - генерировать TOTP и сериализовать его?
Я не уверен, как это сделать:
Я хочу создать конечную точку, где аутентифицированный пользователь может щелкнуть, чтобы получить TOTP.
Функция, которую я использовал как отдельный файл:
# gen_totp.py
import hmac, base64, struct, hashlib, time
def get_hotp_token(secret, intervals_no):
key = base64.b32decode(secret, True)
msg = struct.pack(">Q", intervals_no)
h = hmac.new(key, msg, hashlib.sha1).digest()
o = h[19] & 15
h = (struct.unpack(">I", h[o:o+4])[0] & 0x7fffffff) % 1000000
return h
def get_totp_token(secret):
return get_hotp_token(secret, intervals_no=int(time.time())//30)
Затем в serialize
:
from re import U
from rest_framework import serializers
# totp serializer
class totp_serializer(serializers.Serializer):
totp = serializers.IntegerField(get_totp_token())
Я в тупике, как предоставить секрет get_totp_token()
в totp_serializer
.