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