问题
我正在尝试使用服务器端会话(保存在 PSQL db 上),但它们不会在请求之间持续存在。
描述
我在本地运行我的应用程序,分为两部分。
- 在MY_IP:2501上运行的后端
- 在MY_IP:3000上运行的前端
现在根据我的理解,Flask 将会话保存在 PSQL 的“会话”表中(因为我们正在存储服务器端会话),并且该特定行的 ID 以响应标头的形式发送到客户端,即“Set-曲奇饼”。
上面描述的每件事都在工作,但是当 React 前端(或浏览器)收到这个头时,它不会从中创建一个 cookie,因为会话 id 没有存储在前端,然后前端无法发送与后端相同,因为它无法获取关联的会话数据,导致每次都为空会话。
:(
到目前为止我尝试过的东西..
在返回响应时允许所有类型的标头完成。
`response.headers.add('Access-Control-Allow-Headers', "Origin, X-Requested-With, Content-Type, Accept, x-auth")`
完成允许来自前端和后端的 withCredentials 标头属性。
使用“SESSION_COOKIE_HTTPONLY”配置属性从会话中删除了 HttpOnly 参数
完成与前端相同的“SESSION_COOKIE_DOMAIN”设置
笔记
如果我通过 POSTMAN 调用我的 API,则会话将持续存在,因为 cookie 保存在 POSTMAN 中。
如果我在 chrome --disable-web-security 上运行应用程序,那么它也可以工作。