在使用POST接口的时候经常会出现403的情况,这是CRSF的认证,下面说说CRSF的认证情况
一、在setting中MIDDLEWARE,这儿的加上认证,代表的是全局认证,

如果你不想让CSRF在网站里面进行认证,可以直接注释掉红色框中的就可以
二、如果想让你的函数里面有一个函数不需要认证,怎么操作呢?就需要引入第三方包,在使用装饰器@csrf_exempt就可以,比如:
from django.views.decorators.csrf import csrf_exempt
#取消csrf校验
from django.views.decorators.csrf import csrf_exempt
from django.http import HttpResponse
from django.views import View
@csrf_exempt##取消csrf认证
class TestView(View):
def get(self,request,*args,**kwargs):
return HttpResponse('GET')
def post(self,request,*args,**kwargs):
return HttpResponse('POST')
def put(self,request,*args,**kwargs):
return HttpResponse('PUT')
def delete(self,request,*args,**kwargs):
return HttpResponse('DELETE')
这个时候可以不用管setting里面的crsf的配置,不需要注释csrf配置
Django CSRF 认证详解与取消

本文介绍了Django中CSRF的认证过程,包括全局启用和禁用方法。在settings.py中添加或注释MIDDLEWARE进行全局设置。若要特定函数免于CSRF认证,可使用@csrf_exempt装饰器。对于类或特定函数的认证需求,可使用@csrf_protect。在涉及token验证时,需结合method_decorator来确保CSRF验证生效。
最低0.47元/天 解锁文章
2325

被折叠的 条评论
为什么被折叠?



