如何在本地客户端存储从本地后端 API 返回的 cookie?
How can I store cookies on a local client that are returned from a local backend API?
我在本地有两个应用程序 运行。一个 React 前端和一个 Flask 后端。后端处理所有 OAuth 身份验证并为前端提供一堆端点。
反应:http://www.local-app.com:3000/
烧瓶: http://www.local-app.com/
如果我 post 到 URL http://www.local-app.com/v1/auth/login
我得到这个响应数据:
Access-Control-Allow-Origin: http://www.local-app.com:3000
Connection: keep-alive
Content-Length: 2
Content-Type: text/html; charset=utf-8
Date: Fri, 08 Nov 2019 03:13:04 GMT
Server: nginx
Set-Cookie: remember_token=username|long_remember_token_here; Expires=Sat, 07-Nov-2020 03:13:04 GMT; Path=/
Set-Cookie: session=long_session_token_here; Domain=.local-app.com; Expires=Mon, 09-Dec-2019 03:13:04 GMT; HttpOnly; Path=/
Vary: Origin
这对我来说似乎是正确的,但无论我如何尝试,Cookie 都不会存储在客户端上。
在 post 人中发布到 http://www.local-app.com/v1/auth/login
有效。 cookie 已设置并在其他端点持久保存。
我认为问题出在 cookie 域上。我试过设置代理和各种设置,但没有任何效果。
有什么建议吗?
问题是由于 Flask Cors 模块覆盖了我的 Nginx CORS 配置。将以下代码添加到 Flask 应用程序解决了我的问题。
CORS(app, supports_credentials=True)
感谢 Selcuk 为我指明了正确的方向。
我在本地有两个应用程序 运行。一个 React 前端和一个 Flask 后端。后端处理所有 OAuth 身份验证并为前端提供一堆端点。
反应:http://www.local-app.com:3000/
烧瓶: http://www.local-app.com/
如果我 post 到 URL http://www.local-app.com/v1/auth/login
我得到这个响应数据:
Access-Control-Allow-Origin: http://www.local-app.com:3000
Connection: keep-alive
Content-Length: 2
Content-Type: text/html; charset=utf-8
Date: Fri, 08 Nov 2019 03:13:04 GMT
Server: nginx
Set-Cookie: remember_token=username|long_remember_token_here; Expires=Sat, 07-Nov-2020 03:13:04 GMT; Path=/
Set-Cookie: session=long_session_token_here; Domain=.local-app.com; Expires=Mon, 09-Dec-2019 03:13:04 GMT; HttpOnly; Path=/
Vary: Origin
这对我来说似乎是正确的,但无论我如何尝试,Cookie 都不会存储在客户端上。
在 post 人中发布到 http://www.local-app.com/v1/auth/login
有效。 cookie 已设置并在其他端点持久保存。
我认为问题出在 cookie 域上。我试过设置代理和各种设置,但没有任何效果。
有什么建议吗?
问题是由于 Flask Cors 模块覆盖了我的 Nginx CORS 配置。将以下代码添加到 Flask 应用程序解决了我的问题。
CORS(app, supports_credentials=True)
感谢 Selcuk 为我指明了正确的方向。