import base64
import time
from django_otp.oath import TOTP


def generate_base32_secret() -> str:
    return base64.b32encode(
        base64.b64encode(
            str(time.time()).encode()
        )).decode()[:32]

def verify_totp(secret: str, token: int) -> bool:
    totp = TOTP(
        key=base64.b32decode(secret),
        step=30,
        digits=6,
    )
    totp.time = int(time.time())
    return totp.verify(token, tolerance=1)
