![nginx 中的 csrf 令牌缺少 pgadmin](https://linux22.com/image/780871/nginx%20%E4%B8%AD%E7%9A%84%20csrf%20%E4%BB%A4%E7%89%8C%E7%BC%BA%E5%B0%91%20pgadmin.png)
我正在使用 postgres、pgadmin、nginx docker 镜像,也使用 gunicorn 并使用 docker-compose 启动。
我可以成功完成以下操作:
- 所有服务均已正常运行。
- 能够登录 pgadmin(通过 nginx)。
- 能够创建服务器并在数据库上发出查询。
问题是:当我点击注销按钮时。虽然我可以注销并重定向到登录页面。但在终端上,我收到错误,有时不是持续的,而是
- 错误 pgadmin:400 错误请求:缺少 CSRF 会话令牌。
- 错误 pgadmin:CSRF 令牌不匹配。
我在谷歌上尝试了很多解决方案,但都没有奏效。我还观察到以下情况:
- 我查看了登录页面源代码,其中有一个长字符串的 csrf_token。
- 在请求标头中,“X-pgA-CSRFToken”带有长字符串(两者相同)
我的 nginx conf 文件中的 pgadmin 部分如下:
location /pgadmin4 {
proxy_cookie_flags ~ secure nohttponly samesite=none;
proxy_pass http://pgadmin:8081;
}
我不知道到底出了什么问题。