views.py
861 Bytes
import requests
from django.conf import settings
from oauth2_provider.views import TokenView
class CustomTokenView(TokenView):
def post(self, request, *args, **kwargs):
# realizar validaciones de recaptcha
if 'captcha_value' not in request.POST:
raise AttributeError(
"El campo Valor de Captcha es obligatorio"
)
r = requests.post(
'https://www.google.com/recaptcha/api/siteverify',
data={
'secret': settings.SECRET_KEY_CAPTCHA,
'response': request.POST['captcha_value'],
}
)
respuesta = r.json()
if not respuesta["success"]:
raise AttributeError(
"Captcha inválido: " + respuesta['error-codes'][0]
)
return super().post(request, *args, **kwargs)