from datetime import timedelta from django.conf import settings from django.utils import timezone from pingcap_sso.models import CaptchaStore, SecurityCode def enable_captcha(phone): if not settings.CAPTCHA_ENABLED: return False if SecurityCode.objects.filter( confirmed=False, created_at__gte=timezone.now() - timedelta(hours=3), ).count() > 10: return True return False def verify_captcha(key, response): return CaptchaStore.verify(key, response) def generate_new_captcha(): return CaptchaStore.generate_challenge().to_frontend()