registration and verify abuse WIP

This commit is contained in:
2025-04-15 14:01:47 +05:00
parent 9f3f586181
commit e0a80d4a00
6 changed files with 100 additions and 6 deletions
+18
View File
@@ -2,10 +2,12 @@
This is the models module for api.
"""
from datetime import timedelta
from django.contrib.auth.models import AbstractUser
from django.db import models
from .managers import CustomUserManager
from django.utils import timezone
import pyotp
class User(AbstractUser):
@@ -34,6 +36,22 @@ class User(AbstractUser):
objects = CustomUserManager()
class TemporaryUser(User):
otp_secret = models.CharField(max_length=50, default=pyotp.random_base32)
otp_verified = models.BooleanField(default=False)
def generate_otp(self):
totp = pyotp.TOTP(self.otp_secret, interval=300)
return totp.now()
def verify_otp(self, otp):
totp = pyotp.TOTP(self.otp_secret, interval=300)
return totp.verify(otp)
def is_expired(self):
return self.created_at < timezone.now() - timedelta(minutes=5)
class Atoll(models.Model):
name = models.CharField(max_length=255, unique=True)
created_at = models.DateTimeField(default=timezone.now)