的讨论。当后端在多个pod/节点上运行时,当子序列请求过早进入时,后端将无法跨集群发送缓存失效请求。此外,如果多个请求分布在多个节点上,则会消耗延迟和不必要的资源。对于单个客户端,Spartacus应该尽可能与单个后端进行交互。这在传统上被称为“粘性会话”。CCv2为此做了部分准备。它将ROUTEcookie添加到响应中。但是,此cookie不可配置且不使用SameSite策略。这意味着解耦店面可能无法使用它,因为它作用于不同的域。今天似乎只有chrome有这个问题,但期待未来更多的浏览器。不幸的是,今天的斯巴达克斯不使用ROUTEcookie。Cookie根本不会随任何请求一起发送。为了利用ROUTEcookie,必须执行以下操作:在http客户端中使用withCredentials:true选项,以便在每次请求时发送cookie使用额外的CORS过滤器(Allow-Origin-With)配置商务后端-Credentials:true),以确保cookie通过过滤器。为确保Spartacus(或更好:angular)将随请求发送cookie,必须使用withCredentials:true选项完成请求。这可以在拦截器中完成,以便我们以通用方式执行此操作,并确保没有请求忘记这一点。一旦这些前端增强功能到位,就会抛出一个错误,因为必须完成额外的后端配置。必须添加新的配置属性corsfilter.ycommercewebservices.allowCredentials=true。SAPSpartacus的具体增强方法:首先在occ-config.ts中添加一个配置项:useWithCredentials,然后新建一个拦截器。如果检测到配置中启用了withCredentials选项,则会拦截所有HTTP请求,并添加相应的withCredentials信息。最后在模块中注入这个HTTP拦截器实现:测试方法(1)验证是否为第一个OCC请求ROUTE检索了响应cookie(2)验证是否将ROUTEcookie添加到所有后续请求中测试结果:当我们第一次SPA是第一次加载,我们在第一次occ调用的响应中得到ROUTEcookie。然后我们在后续的occ请求中获取ROUTEcookie。更多Jerry原创文章在这里:《王子熙》:
