首页 > 解决方案 > 跨域 cookie 延迟

问题描述

我注意到浏览器存储或将跨域 cookie 分配给它返回的域以外的其他域存在延迟。

我有 3 个域。 www.mysite.com调用... api.mysite.com/register并返回一个 SSO cookie,该 cookie 在标头中设置并分配给 .mysite.com 然后用户被重定向到 accounts.mysite.com

SSO 令牌从 api.mysite.com 正确返回,并且 99% 的时间将其传递给 accounts.mysite.com。但是,如果我设置 1000 毫秒的超时延迟,我可以保证 SSO cookie 会被传递到 accounts.mysite.com。

我在网上找不到任何关于浏览器传递 CORS cookie 的任何延迟的参考资料。即使 CORS 失败,CORS 也始终在标头中正确设置。当我检查它并且域正确设置为 .mysite.com 时,Cookie 看起来不错,并且我已经尝试了没有前导点的事件。

那么为什么有时它不会传递给帐户子域。如果我在 chrome 中重播失败的请求,cookie 将第二次传递到帐户子域。这会影响所有主要浏览器。

问候,肯

标签: cookiesdelay

解决方案


这听起来像是重定向逻辑中的竞争条件。发出 AJAX 请求时的一个常见错误是在发送请求之后,但在接收到指示已收到响应的回调之前执行一些其他代码。根据其他代码的时间,它可能会受到第一个响应是否“赢得比赛”的影响。


推荐阅读