django后台登录:Forbidden (403) CSRF verification failed. Request aborted.

发布时间:2024年01月16日

如果您在尝试登录Django后台时遇到了CSRF验证失败的错误,这通常意味着您的浏览器未能提交正确的CSRF令牌,或者Django后端未能验证该令牌。遵循以下步骤来解决这个问题:

  1. 清除浏览器Cookies和缓存:
    有时候,浏览器的Cookies或缓存可能导致此类问题。尝试清除您的浏览器Cookies和缓存,然后重新登录。

  2. 确保CSRF_TRUSTED_ORIGINS设置正确:
    由于错误消息显示“来源检查失败”,这表明Django后台期望请求来自某个指定的源。您需要确认settings.py文件中的CSRF_TRUSTED_ORIGINS设置包含了正确的域名,如果您是在本地开发,可能需要添加如下:

    CSRF_TRUSTED_ORIGINS = ['https://*.xxx.com', 'https://xxx.com']
    

    如果您正在本地工作,而且使用的是localhost127.0.0.1进行访问,请确保这些也被添加到CSRF_TRUSTED_ORIGINS中:

    CSRF_TRUSTED_ORIGINS = ['https://*.localhost', 'https://127.0.0.1']
    
  3. 检查中间件配置:
    确保settings.py中的MIDDLEWARE配置正确且包含了'django.middleware.csrf.CsrfViewMiddleware'

  4. 考虑HTTPS和代理设置:
    如果您的Django站点后面有代理服务器(如Nginx或Apache),请确保代理正确设置了HTTP头信息,如X-Forwarded-Proto,以便Django可以识别出请求是通过HTTPS发起的。

  5. 重新启动您的Django服务器:
    有时候,简单地重启您的开发服务器可以解决问题。如果您使用的是runserver命令,尝试停止服务器并重新启动。

  6. 检查自定义的登录视图:
    如果您使用了自定义的登录视图,请确保在POST表单中包含了{% csrf_token %}模板标签。

文章来源:https://blog.csdn.net/weixin_46084533/article/details/135615186
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。