您好,我有一个前端应用程序,该应用程序已迁移到django,并且为了保护csrf,我使用的方法是将csrf令牌从cookie复制到我的发帖请求的标头中。尽管请求包含来自cookie的csrf令牌,但Django仍在抱怨无效的csrf令牌。
在我的settings.py
中,我明确指定:
CSRF_USE_SESSIONS = False
确保根据docs
,获取cookie csrf的请求标头为:
HTTP_X_CSRFTOKEN
存在cookie,并将其复制到上面的标题中
答案 0 :(得分:2)
HTTP_X_CSRFTOKEN
是错误的请求标头名称。 correct的名称为X-CSRFToken
。 Django通过以下方式将 HTTP请求标头名称转换为 Python字典键:
将所有字符转换为大写字母,用下划线替换所有连字符,然后在名称中添加一个“ HTTP_”前缀。
不幸的是,转型会导致混乱。