У меня возникли проблемы с проверкой reCAPTCHA
У меня есть проект с django, и у меня есть шаблон регистрации, в нем я поместил recaptcha, чтобы при заполнении он проверял ее, но когда я тестировал, я заполнил форму, и она сказала мне "ошибка reCAPTCHA, повторите попытку позже"
У меня есть мнение:
def signup(request):
if request.method == 'GET':
return render(request, 'signup.html', {'form': UserSignUpForm()})
else:
form = UserSignUpForm(request.POST)
if form.is_valid():
if verificar_recaptcha(request.POST.get('g-recaptcha-response')):
if request.POST['password1'] == request.POST['password2']:
try:
user = User.objects.create_user(
username=request.POST['username'],
password=request.POST['password1'],
first_name=request.POST['first_name'],
last_name=request.POST['last_name'],
email=request.POST['email']
)
user.save()
login(request, user)
return redirect('mensaje')
except IntegrityError:
return render(request, 'signup.html', {
'form': UserSignUpForm(),
'error': 'El usuario ingresado ya se encuentra registrado'
})
else:
return render(request, 'signup.html', {
'form': UserSignUpForm(),
'error': 'Las contraseñas no coinciden'
})
else:
return render(request, 'signup.html', {
'form': UserSignUpForm(),
'error': 'Error de reCAPTCHA. Por favor, inténtalo de nuevo.'
})
else:
return render(request, 'signup.html', {'form': form})
У меня есть другой файл, который выполняет проверку
import requests
def verificar_recaptcha(token):
secret_key = 'secretkey'
url = 'https://www.google.com/recaptcha/api/siteverify'
payload = {
'secret': secret_key,
'response': token
}
response = requests.post(url, data=payload)
data = response.json()
if data['success']:
return True
else:
return False
Я пробовал менять представления, но ничего не происходит.
Попробуйте добавить заголовок User-Agent к вашему запросу :
url = "https://www.google.com/recaptcha/api/siteverify"
headers = {'User-Agent': 'DebuguearApi-Browser',}
payload = {
'secret': secret_key,
'response': token
}
response = requests.post(url, data=payload, headers=headers) # <-- Update Here