繁体   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