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

部署在Azure Web App+PostgreSQL的Django应用登录页出现CSRF错误求助

Django Azure部署CSRF错误排查提示

关键检查项

  • ALLOWED_HOSTS 配置
    确认 settings.py 里的 ALLOWED_HOSTS 包含你的Azure应用域名(比如 <yourappname>.azurewebsites.net),PostgreSQL实例环境里可能漏配了这个,导致CSRF cookie没法正确生成。

  • 添加CSRF_TRUSTED_ORIGINS
    在settings.py里加上 CSRF_TRUSTED_ORIGINS = ['https://<yourappname>.azurewebsites.net'],注意必须是https协议。Azure生产环境用的是HTTPS,Django得信任这个源才能正常验证CSRF token。

  • Cookie安全配置
    检查 SESSION_COOKIE_SECURE 和 CSRF_COOKIE_SECURE 是否设为 True。Azure强制用HTTPS,这两个参数不开的话,cookie传输不安全,可能导致token传递失败。

  • 验证CSRF token渲染
    打开登录页面的源代码,看看有没有生成 <input type="hidden" name="csrfmiddlewaretoken" value="..." /> 这个元素。如果没有,可能是静态文件没收集好(记得执行 python manage.py collectstatic 再部署),或者模板加载出了问题。

  • 反向代理头配置
    Azure App Service是通过反向代理转发请求的,得在settings.py里加 SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https'),让Django知道真实请求用的是HTTPS,不然会因为协议不匹配触发CSRF错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 07:23:10