File size: 933 Bytes
8311f5b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import os
from typing import Optional
from fastapi import Request
from dotenv import load_dotenv
from loguru import logger

load_dotenv()

SECRET_KEY = os.getenv("SECRET_KEY")
VERIFY_URL = "https://www.google.com/recaptcha/api/siteverify"


class VerificationForm:
    request: Request
    captcha: Optional[str] = None

    def __init__(self, request: Request):
        self.request = request

    async def load_data(self):
        data = await self.request.form()
        self.captcha = data.get("captcha")
        self.captcha_id = data.get("captcha_id")
        logger.info(f"captcha: {self.captcha}")
        logger.info(f"captcha_id: {self.captcha_id}")
        # self.g_recaptcha_response = data.get("g-recaptcha-response")

    async def is_valid(self):
        if not self.captcha or self.captcha.strip().lower() != os.getenv(
            f"captcha{self.captcha_id}"
        ):
            return False
        return True