Files
2019-06-08 17:27:48 +03:00

39 lines
1.1 KiB
Python

import json
import requests
from django.shortcuts import get_object_or_404
from django.http import HttpResponse
from django.conf import settings
from django.views.generic.detail import DetailView
from nobotapp.models import CaptchaUrl
class CaptchaRedirect(DetailView):
template_name = "captcha.html"
model = CaptchaUrl
def get_context_data(self, **kwargs):
context_data = super().get_context_data(**kwargs)
context_data['site_key'] = settings.GOOGLE_RECAPTCHA_SITE_KEY
return context_data
def post(self, request, slug):
obj = get_object_or_404(CaptchaUrl, slug=slug)
try:
token = request.POST['token']
except KeyError:
return HttpResponse(status=403)
request_data = {
'secret': settings.GOOGLE_RECAPTCHA_SECRET_KEY,
'response': token
}
resp = requests.post(
'https://www.google.com/recaptcha/api/siteverify',
data=request_data)
data = json.loads(resp.content)
if not data['success']:
return HttpResponse(status=403)
return HttpResponse(obj.destination)