fix: Use native django.http.JsonResponse and test attribute fallback for ALTCHA challenge widget
This commit is contained in:
Binary file not shown.
@@ -26,12 +26,10 @@ from .serializers import (
|
||||
ShiftSerializer, EventTemplateSerializer
|
||||
)
|
||||
|
||||
from rest_framework.renderers import JSONRenderer
|
||||
|
||||
class AltchaChallengeView(views.APIView):
|
||||
permission_classes = [permissions.AllowAny]
|
||||
renderer_classes = [JSONRenderer]
|
||||
from django.views import View
|
||||
from django.http import JsonResponse
|
||||
|
||||
class AltchaChallengeView(View):
|
||||
def get(self, request):
|
||||
salt = secrets.token_hex(12)
|
||||
secret_number = random.randint(1000, 50000)
|
||||
@@ -40,13 +38,23 @@ class AltchaChallengeView(views.APIView):
|
||||
signature = hmac.new(key, msg, hashlib.sha256).hexdigest()
|
||||
challenge_hash = hashlib.sha256(msg).hexdigest()
|
||||
|
||||
return Response({
|
||||
response = JsonResponse({
|
||||
"algorithm": "SHA-256",
|
||||
"challenge": challenge_hash,
|
||||
"maxnumber": 100000,
|
||||
"salt": salt,
|
||||
"signature": signature
|
||||
})
|
||||
response["Access-Control-Allow-Origin"] = "*"
|
||||
response["Access-Control-Allow-Headers"] = "*"
|
||||
return response
|
||||
|
||||
def options(self, request):
|
||||
response = HttpResponse()
|
||||
response["Access-Control-Allow-Origin"] = "*"
|
||||
response["Access-Control-Allow-Headers"] = "*"
|
||||
response["Access-Control-Allow-Methods"] = "GET, OPTIONS"
|
||||
return response
|
||||
|
||||
def verify_altcha_payload(payload):
|
||||
if not payload:
|
||||
|
||||
Reference in New Issue
Block a user