在不使用 CORS 或 CSRF 令牌的情况下设置 React/DRF

问题描述

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

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

解决方法

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

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

,

如果你真的需要忽略它: (它是 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')