上下文在不同用户之间共享

时间:2019-09-01 11:06:40

标签: javascript reactjs next.js mobx server-side-rendering

错误

在其他请求中间有对NextJS的请求时,这些请求之间将共享上下文。

要复制

此处提供了重现该错误所需的代码的仓库:https://github.com/matigda/nextjs_issue

  • 克隆存储库
  • 运行npm install
  • 运行npm run dev
  • 在两个单独的浏览器中打开http://localhost:3000(或仅打开一个 处于私人模式的窗口),但在第一个窗口中打开第二个窗口 仍在加载中。在此之前也要打开控制台
    • 您可以 还设置document.cookie ='token =您想要的任何东西'(只是为了看看 控制台中的结果)。如果您设置了Cookie,请刷新页面 在其中您没有设置此Cookie,然后立即刷新 第二个窗口中的页面。
  • 如果您未设置Cookie,则只需 看到两个ID相同。如果您设置cookie,您还将 请注意,即使两个页面上的AuthStore中的令牌都相同 其中一页上没有cookie。所以基本上-如果请求A 首先运行,然后在中间出现请求B,A请求 从B请求接收数据。因此,如果您以其他方式运行此测试( 这意味着您首先使用设置的Cookie运行窗口,然后 没有cookie),您将看到之后没有设置令牌 即使其中存在cookie,页面也已加载。

预期的行为

嗯...我觉得很遗憾,在这种情况下,不希望在用户之间共享这些对象。但是我不确定这不仅是我的“ withMobxStores”容器中的错误,因此请首先查看一下。

还请让我知道它是否可以理解-否则,我可以记录GIF以显示正在发生的事情。

1 个答案:

答案 0 :(得分:0)

如果有人想知道它到底是什么-这是响应:https://github.com/zeit/next.js/issues/8588

基本上,服务器在短时间内共享全局变量。不知道确切会持续多长时间(取决于处理时间?),但我希望对此进行进一步的解释。