如何通过使用urllib从请求中读取CSRF令牌,在Django应用程序之间传递它

2024-10-03 23:18:15 发布

您现在位置:Python中文网/ 问答频道 /正文

如何在Django应用程序之间传递CSRF令牌,方法是使用urllib从请求中读取它。在

我有两个服务器在运行Django应用程序,基于URL需要向其他服务器发送请求并返回响应。在

Django middelware返回NoneResponse
对于None:它在同一服务器上处理请求。
Response的情况下:它将响应bake发送到客户机,并绕过请求到同一个服务器。在

假设我有两个服务器“S1”和“S2”,对于URL("/user/1/profile"),我必须向“S2”发送请求。在

我正在django中间件中进行请求克隆,它检查匹配的URL,并将https请求(使用urllib)与所有cookie和头一起发送到“S2”服务器,并通过将其从urllib响应转换为django响应来发送响应。在

用“GET”请求可以正常工作,但是我用“POST”请求得到“403 CSRF”。在

有什么建议我在这里遗漏了什么。在


Tags: django方法服务器none应用程序urlresponse情况
1条回答
网友
1楼 · 发布于 2024-10-03 23:18:15

据我所知,您正在构建一个restapi。在

DjangoCSRF令牌专用于浏览器。 您可以通过添加csrf_exempt decorator来禁用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,它的Authentication Methods用于改进的安全性。在

相关问题 更多 >