前端: React后端: Django CD: Heroku,用于前端和后端SSL: True
如屏幕截图所示,cookie显示在我的请求头中,但它没有显示在我的cookie开发工具中。对于CSRF令牌,我使用了@ensure_csrf_token并配置了屏幕截图中所示的设置,但浏览器开发工具中仍然没有显示它。我还发送了请求withCredentials从前端和允许凭证从后端,这也是附在屏幕截图。cookies可以从挂锁信息中看到,但不能从开发工具中看到。




前端和后端都部署到不同的heroku容器中,因为团队使用的是monorepo。

如何从Django发送cookie以作出反应的示例
响应= HttpResponse() response.set_cookie(key=‘刷新托肯’,value = refreshToken,max_age = 12 * 60 * 60,samesite="None",secure=True)
每个地方的工作都很好,直到我使用Heroku CD,之后就变酸了。Cookie没有设置为browser,这使得我无法在使用js库时获得cookie。
我已经确保了cookie是安全的,samesite设置为none,因为前端和后端都被部署到具有不同heroku URL的不同容器中。与其他线程提供的解决方案相比,没有什么比这更有效的了。
发布于 2022-11-09 11:54:19
对于同样面临这一问题的任何人,请确保前端和后端都指向相同的域。Cookie不会通过跨域设置为浏览器。
还将域包括到HttpResponse
response = HttpResponse() response.set_cookie(key='refreshToken', value = refreshToken, max_age = 12 * 60 * 60, samesite="None", domain=".yourdomain.com", secure=True)
https://stackoverflow.com/questions/74363918
复制相似问题