我使用 React 作为前端,使用 django 作为后端。 当我在本地主机上托管前端和后端时,一切正常,并且
X-CSRFTOKEN
发送完美。
const instance = axios.create({
withCredentials: true,
withXSRFToken: true,
xsrfHeaderName : 'X-CSRFTOKEN',
xsrfCookieName : 'csrftoken'
});
我的 DJango 设置是(取自此答案 Django - 检查 cookies 的“SameSite”属性):
CORS_ALLOW_CREDENTIALS = True
CSRF_COOKIE_SECURE = True
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SAMESITE = "None"
SESSION_COOKIE_SAMESITE = "None"
但是当我的前端 (firebase ) 和后端 (eks aws) 托管在不同的子域上时,我收到 403 禁止错误。
它应该返回 201 ccreated 响应,但它返回 403 错误,
CSRF verification failed. Request aborted.
将您的域名添加到
CSRF_TRUSTED_ORIGINS = ['https://yourdomain.com']
中的
settings.py