Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

737
Views
Django prohibido (cookie CSRF no configurada).

Me preguntaba qué pasa con el error CSRF Cookie not set que Django me arroja todo el tiempo. Creé una vista (ver a continuación) que es una devolución de llamada para un pago. No tengo ninguna influencia de lo que se envía a esa vista. Revisé otras publicaciones en StackOverflow, pero no creo que ninguna se aplique a mí. La mayoría de ellos pueden simplemente implementar una protección csrf en sus formularios, csrf_exempt sus vistas o usan rest_framework.

 class PaymentWebhook(View): def post(self, request, *args, **kwargs): # ...

Ahora, recibo este error cada vez que no hago nada con esta función:

 Forbidden (CSRF cookie not set.): /payment/webhook

Dado que se trata de pagos, ¿puedo simplemente csrf_exempt esto, o eso solo abriría un agujero de seguridad? Por cierto, incluso he intentado poner una exención en esta función, pero aún arroja ese error. ¿Alguna sugerencia?

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Finalmente logré obtener un POST. Estoy bastante seguro de que ya lo había probado, pero parecía funcionar ahora: puse un csrf_exempt en mi urls.py

 from django.views.decorators.csrf import csrf_exempt url(r'^payment/webhook$', csrf_exempt(paymentwebhook), name='payment-webhook')

De otra manera, no me funcionaría por alguna razón. Gracias nik_m por la ayuda, ¡lo aprecio!

over 4 years ago · Santiago Trujillo Report

0

Deberías decorar el método de dispatch con csrf_exempt , así:

 from django.views.decorators.csrf import csrf_exempt from django.utils.decorators import method_decorator class PaymentWebhook(View): @method_decorator(csrf_exempt) def dispatch(self, request, *args, **kwargs): return super(PaymentWebhook, self).dispatch(request, *args, **kwargs) # for python 2 return super().dispatch(request, *args, **kwargs) # for python 3 def post(self, request, *args, **kwargs): # ...

o, en base a esto , puede limpiarlo para:

 from django.views.decorators.csrf import csrf_exempt from django.utils.decorators import method_decorator @method_decorator(csrf_exempt, name='dispatch') class PaymentWebhook(View): def post(self, request, *args, **kwargs): # ...
over 4 years ago · Santiago Trujillo Report

0

Esto es lo que hice (importar csrf_exempt)

 from django.views.decorators.csrf import csrf_exempt @csrf_exempt @api_view(['POST']) def add(request):
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!