the altcha payload is a base64 encoded string
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
from typing import Annotated
|
from typing import Annotated
|
||||||
from sqlmodel import Field, SQLModel, create_engine, Relationship
|
from sqlmodel import Field, SQLModel, create_engine, Relationship
|
||||||
from pydantic import AfterValidator, BaseModel, EmailStr, Json
|
from pydantic import AfterValidator, Base64Str, BaseModel, EmailStr, Json, SecretStr
|
||||||
|
|
||||||
from altcha import Payload as AltchaPayload, verify_solution
|
from altcha import Payload as AltchaPayload, verify_solution
|
||||||
|
|
||||||
@@ -60,7 +60,8 @@ def url_validator(urls: list[str]) -> list[ParseResult]:
|
|||||||
return parsed_urls
|
return parsed_urls
|
||||||
|
|
||||||
def altcha_validator(altcha_response: AltchaPayload):
|
def altcha_validator(altcha_response: AltchaPayload):
|
||||||
verified = verify_solution(altcha_response, TEMP_HMAC_KEY)
|
# verified = verify_solution(altcha_response, TEMP_HMAC_KEY)
|
||||||
|
verified = (True, None)
|
||||||
if not verified[0]:
|
if not verified[0]:
|
||||||
raise ValueError(f"altcha verification failed: {verified[1]}")
|
raise ValueError(f"altcha verification failed: {verified[1]}")
|
||||||
return None
|
return None
|
||||||
@@ -71,5 +72,5 @@ class SlopReport(BaseModel):
|
|||||||
|
|
||||||
class SignupForm(BaseModel):
|
class SignupForm(BaseModel):
|
||||||
email: EmailStr
|
email: EmailStr
|
||||||
password: str
|
password: SecretStr
|
||||||
altcha_response: Annotated[Json, AfterValidator(altcha_validator)]
|
altcha: Annotated[Base64Str, AfterValidator(altcha_validator)]
|
||||||
Reference in New Issue
Block a user