【问题标题】:Cross-Domain cookie delay跨域 cookie 延迟
【发布时间】:2020-01-03 09:09:56
【问题描述】:

我注意到浏览器将跨域 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 将第二次传递到帐户子域。这会影响所有主流浏览器。

问候, 肯

【问题讨论】:

    标签: cookies delay


    【解决方案1】:

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

    【讨论】:

    • 是的,这是我们想到的第一件事,并设置了一个条件,即在我们得到 api 站点的响应之前不重定向到帐户站点。这样就消除了。
    • 实际上,感谢您的建议,因为我再次检查了该代码,实际上我们并没有正确等待。问题现已排序。
    • 太棒了!你介意接受我的回答吗?这将有助于我在这里的声誉:)
    猜你喜欢
    • 2021-06-13
    • 2011-03-21
    • 2018-12-15
    • 1970-01-01
    • 1970-01-01
    • 2021-11-15
    相关资源
    最近更新 更多