[英]How to pass CSRF token between django applications by reading it from request using urllib
如何通過使用urllib
從請求中讀取它來在Django
應用程序之間傳遞CSRF
令牌。
我有兩個運行Django
應用程序的服務器,基於URL需要向其他服務器發送請求並返回響應。
Django middelware
要么返回None
要么返回Response
。
如果是None
:它在同一服務器上處理請求。
在Response
情況下:它將響應烘焙發送到客戶端並繞過請求到同一服務器。
假設我有兩個服務器“S1”和“S2”,而對於URL( "/user/1/profile"
),我必須向“S2”發送請求。
我在django中間件中進行請求克隆,它檢查匹配的URL並使用所有cookie和頭的https請求(使用urllib)到“S2”服務器,並通過將其從urllib-response轉換為django-response來發回響應。
隨着“GET”請求其工作正常,但我得到“403 CSRF”與“POST”請求。
我在這里缺少任何建議。
據我了解,您正在構建REST API。
DjangoCSRF令牌是瀏覽器專用的。 您可以通過添加csrf_exempt裝飾器來禁用DjangoCsrf保護
來自文檔:
from django.views.decorators.csrf import csrf_exempt
from django.http import HttpResponse
@csrf_exempt
def my_view(request):
return HttpResponse('Hello world')
但是你應該考慮使用Django Rest Framework和它的身份驗證方法來提高安全性 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.