默认情况下,Django REST Framework中不包含CSRF。因此,curl POST请求工作正常。POSTMAN请求调用返回的CSRF错误,因为POSTMAN包含csrf令牌(如果在Cookies中找到的话)。您可以通过清理Cookies来解决此问题。
它来自你的REST Framework设置。在settings.py
文件中,你REST_FRAMEWORK
应该具有以下内容。
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.TokenAuthentication',
),
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.AllowAny',
),
}
这会将你的REST框架设置为使用令牌身份验证而不是csrf身份验证。通过将权限设置为AllowAny,你可以仅在需要的地方进行身份验证。