簡體   English   中英

如何使用urllib從請求中讀取django應用程序之間的CSRF令牌

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM