diff options
Diffstat (limited to 'backend')
| -rw-r--r-- | backend/main.py | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/backend/main.py b/backend/main.py index a5faf36..8b97d66 100644 --- a/backend/main.py +++ b/backend/main.py @@ -3,6 +3,7 @@ from fastapi.middleware.cors import CORSMiddleware import requests from dotenv import load_dotenv from os import getenv +from pydantic import BaseModel print("Hello, world!") load_dotenv() @@ -24,6 +25,11 @@ app.add_middleware( ) +class TurnstileTokenData(BaseModel): + token: str + remoteip: str + + @app.post("/email") def email(token): if validate_turnstile(token): @@ -42,19 +48,19 @@ def email(token): # https://developers.cloudflare.com/turnstile/get-started/server-side-validation/, modified # returns response if success, returns None if unsuccessful. -def validate_turnstile(token, remoteip=None) -> tuple: +def validate_turnstile(data: TurnstileTokenData) -> tuple: url = 'https://challenges.cloudflare.com/turnstile/v0/siteverify' - data = { + send = { 'secret': TURNSTILE_SECRET, - 'response': token + 'response': data.token } - if remoteip: - data['remoteip'] = remoteip + if data.remoteip: + data['remoteip'] = data.remoteip try: - response = requests.post(url, data=data, timeout=10) + response = requests.post(url, data=send, timeout=10) response.raise_for_status() return response.json() except requests.RequestException as e: |
