美文网首页
django中遇到错误:Forbidden CSRF cooki

django中遇到错误:Forbidden CSRF cooki

作者: 吉祥鸟hu | 来源:发表于2020-12-09 21:09 被阅读0次
    CSRF cookie not set 
    

    提示就是说

    未设置CSRF cookie

    CSRF 是啥?

    表示django全局发送post请求均需要字符串验证

    功能: 防止跨站请求伪造的功能

    工作原理:客户端访问服务器端,在服务器端正常返回给客户端数据的时候,而外返回给客户端一段字符串,等到客户端下次访问服务器
    端时,服务器端会到客户端查找先前返回的字符串,如果找到则继续,找不到就拒绝。

    访问流程:客户端-》URL路由系统 - 》 CSRF -》视图函数

    我这里要写的是一个内部使用的api接口,也不大会有 跨站请求伪造

    所以这里提供两个不是很推荐,但是非常简单的方式解决这个问题

    既然不需要 CSRF 这里我们就把CSRF检测关掉即可

    解决方法1:

    1. 在你创建的项目中,找到settings.py文件
    2. 文件settings.py 找到 MIDDLEWARE参数
    3. 注释掉'django.middleware.csrf.CsrfViewMiddleware',即可

    就像这样


    file

    解决方法2:

    第二种方法和第一种差不多

    上面是的注释掉django.middleware.csrf.CsrfViewMiddleware,这是一个全局的设置

    其实我们也可以对单个api 进行特别设置

    这里 我们使用 @csrf_exempt 来进行处理

    @csrf_exempt 是用来取消当前函数防跨站请求伪造功能

    1. views.py 文件,这是我们处理api规则的
    2. 导入from django.views.decorators.csrf import csrf_exempt
    3. 我们在对应的函数上加上@csrf_exempt

    就像这样,是不是很简单


    file

    关注我获取更多内容
    注:转载还请注明出处,谢谢_

    相关文章

      网友评论

          本文标题:django中遇到错误:Forbidden CSRF cooki

          本文链接:https://www.haomeiwen.com/subject/pdjkgktx.html