【问题标题】:Setup React/DRF without using CORS or CSRF tokens在不使用 CORS 或 CSRF 令牌的情况下设置 React/DRF
【发布时间】:2021-06-17 03:45:03
【问题描述】:

我在 YouTube 上看到了一个很棒的教程,其中 react 是使用 DRF 手动设置的。在整个教程中,完全没有使用 csrf 令牌和 django-cors-headers。我正在尝试使用 npx create-react-app 来实现相同的目标,但是 csrf 令牌和 cors 以这种方式成为一个问题。如何使用我的 drf/react 应用程序避免 CSRF 和 CORS!

这是教程: https://www.youtube.com/watch?v=6c2NqDyxppU&t=1s

【问题讨论】:

    标签: reactjs django django-rest-framework csrf-token django-cors-headers


    【解决方案1】:

    在上面的视频中,应用程序使用相同的主机名(未实施跨域请求 - 因此您不需要任何 CORS)而且它是单页应用程序。并将您的 Django 应用 URL ('/') 路由到 index.html。 React 将使用 Django 静态文件和 index.html 路由。并且所有其他 URL 路由都使用 react push 方法(这里我们在反应页面中使用 REST API 端点 - 所以你不需要任何 CSRF 令牌)。

    通常它适用于中小型项目。但是,当您扩展应用程序时,例如将静态文件存储在云存储桶中,您可能会很头疼。 Docker 映像将在生产中为您提供帮助。

    【讨论】:

    • 啊,好吧,现在更有意义了,谢谢!如何使用 npx create-react-app 进行配置?
    【解决方案2】:

    如果你真的需要忽略它: (是on django site)

    此装饰器将视图标记为不受中间件确保的保护。示例:

    from django.http import HttpResponse
    from django.views.decorators.csrf import csrf_exempt
    
    @csrf_exempt
    def my_view(request):
        return HttpResponse('Hello world')
    

    【讨论】:

      猜你喜欢
      • 2016-08-25
      • 2015-04-09
      • 2019-10-08
      • 1970-01-01
      • 2012-11-03
      • 2014-09-01
      • 2014-05-01
      • 1970-01-01
      • 2020-05-18
      相关资源
      最近更新 更多