【发布时间】:2019-03-02 07:47:43
【问题描述】:
在我的场景中,我在我的反应前端 (http://localhost:3000/submit) 中使用一个表单来发布到我的网址 http://localhost:8000/api/submit/
但是,我收到了这样的回复:
“detail”:“CSRF 失败:CSRF 令牌丢失或不正确。”
我的班级视图是这样的:
from rest_framework.views import APIView
from rest_framework.parsers import MultiPartParser, FormParser
class Submit(APIView):
parser_classes = (MultiPartParser, FormParser)
def post(self, request, *args, **kwargs):
#custom post
我有两个问题:
- 如何装饰 dispatch() 以免除 csrf?
- 如何向我的前端提供 CSRF?
**
Risadinha 的解决方案:
**
import cookie from "react-cookies";
...
<input
type="hidden"
value={cookie.load("csrftoken")}
name="csrfmiddlewaretoken"
/>
【问题讨论】:
-
您是否看过使用
TokenAuthentication: django-rest-framework.org/api-guide/authentication/… --TokenAuthentication可能更适合您的客户端-服务器设置。 -
我做了,但我想学习如何使它与 CSRF 一起工作。