You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为两个Django应用间的纯REST API通信配置CSRF令牌?

解决Django后端间POST请求的CSRF禁止问题

方法1:用csrf_exempt装饰器跳过CSRF验证

如果这个接口仅用于后端之间调用,可直接给接收POST请求的视图函数添加该装饰器,跳过CSRF校验:

from django.views.decorators.csrf import csrf_exempt
from django.http import HttpResponse

@csrf_exempt
def target_api_view(request):
    if request.method == 'POST':
        # 编写POST请求处理逻辑
        return HttpResponse("请求处理成功")

方法2:配置信任对方后端域名

若不想完全关闭CSRF验证,可在接收请求的Django项目settings.py中,将对方后端的域名加入信任列表,来自该域名的请求会自动跳过CSRF校验:

CSRF_TRUSTED_ORIGINS = [
    "https://other-backend-domain.com",  # 替换为实际的对方后端域名
    "http://other-backend-domain.com",
]

方法3:改用Token认证(API服务推荐方案)

纯API服务更适合用Token认证替代CSRF,既保证接口安全,又避免CSRF限制:

  1. 安装并配置Django REST Framework
  2. 在settings.py中启用Token认证:
INSTALLED_APPS = [
    ...
    'rest_framework',
    'rest_framework.authtoken',
]

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': [
        'rest_framework.authentication.TokenAuthentication',
    ],
}
  1. 给对方后端生成专属Token,对方发送POST请求时,在请求头中携带Authorization: Token <生成的Token>即可正常访问。

内容的提问来源于stack exchange,提问作者Akaisteph7

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 19:38:08