我正在单页应用程序中使用身份验证。它有一个React前端和一个flask后端。 API返回一个cookie,然后由浏览器设置。现在,即使我已为cookie提供域值,我也只能使它在同一域上工作。
作品:
UI: http://www.samedomain.com:3000/
API: http://www.samedomain.com/api/login
SESSION_COOKIE_DOMAIN: www.samedomain.com
将成功的登录信息发布到登录端点后,该流程将正常工作。创建一个会话cookie,并保持身份验证状态。此Cookie与.www.samedomain.com
域值一起存储。
不起作用
UI: http://www.samedomain.com:3000/
API: http://backend-api.dev.samedomain.com/api/login
SESSION_COOKIE_DOMAIN: backend-api.dev.samedomain.com
我无法进行这种设置。我尝试了各种不同的SESSION_COOKIE_DOMAIN
值,但从未创建过cookie。我在前端使用axios
库,并将withCredentials
标志设置为true。我还在flask API中像这样配置了CORS:
origins = ['http://www.samedomain.com:3000']
CORS(app,origins=origins,supports_credentials=True)
关于如何使不同子域在此流程中工作的任何建议: