SORU
9 AĞUSTOS 2013, Cuma


Token Angularjs Django csrf

Django bir apache server üzerinde mod_wsgi olarak angularjs bir uygulama django ile doğrudan apache tarafından hizmet değil kullanarak çalıştırıyorum. Django sunucusu (çalışan rest_framework) SONRASI görüşme yapmak istiyorum ama csrf token ile ilgili sorunlar yaşıyorum.

Şablon bu sayfalarda django ile gitmiyor beri) bir parçası olarak {% csrf token %} koymadan sunucudan jeton ayarlamak için bir şekilde var mı?

  1. Bir ile bir csrf token çerez olarak istek ALMAK için mümkün olmak istiyorum.
  2. Sonra csrf token cookie değeri ile django sunucuya POST isteği yapmak mümkün olmak istiyorum.

CEVAP
9 AĞUSTOS 2013, Cuma


Django ve AngularJS sizin açınızdan oldukça basittir zaten, destek CSRF var.

Öncelikle, şimdiye kadar yapmış sanırım Django, değilse, takip Django https://docs.djangoproject.com/en/1.5/ref/contrib/csrf/#ajax doktor CSRF etkinleştirmeniz gerekir.

Şimdi, Django bir kurabiye ilk csrftoken adlı bir GET isteği oluşturur ve X-CSRFToken Daha sonra POST//SİLME istekleri KOYMAK Başlığı özel bir HTTP bekliyor.

İçin Açısal beklediği çerez adında XSRF-TOKEN ve yapacak POST/PUT/DELETE istekleri ile X-XSRF-TOKEN başlık, yani ihtiyacın olan şey biraz ayarlamam için iki çocuk birbirlerine:

$httpProvider.defaults.xsrfCookieName = 'csrftoken';
$httpProvider.defaults.xsrfHeaderName = 'X-CSRFToken';

Bir yerlerde js kodu modülün içinde iki satırı Ekle.() config bloğu bunun için iyi bir yerdir.

İşte bu kadar.

NOT:Bu 1.1.5, eski sürümleri farklı bir yaklaşım gerekebilir açısal.

Güncelleme:

Açısal uygulamasını django hizmet olmadığından, çerez ayarlamak için izin vermek amacıyla, açısal uygulaması ilk django için bir GET isteğini yapmak gerekiyor.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • andony5589

    andony5589

    7 Aralık 2011
  • kylediablo

    kylediablo

    8 Ocak 2007
  • manadude21

    manadude21

    11 Mart 2008