【发布时间】:2020-07-14 13:09:22
【问题描述】:
我们正在将 SAP Commerce 2005 和 Spartacus 2.0.3 与 CDS(上下文驱动服务)集成。我们按照https://sap.github.io/spartacus-docs/cds-integration/ 的说明进行操作,并且正常工作。
不过,我们注意到了一个问题。
当我们清除站点数据(从 Chrome DevTool 或通过浏览器设置)时,在刷新页面时不会重新设置名为 profile.consent.given 的 cookie - 即使 PROFILE 同意在本地存储中的许可状态为“GIVEN” spartacus-local-data > 匿名同意 > 同意。
一开始我以为它只是在 DevTools 中不可见,但是当我添加了 url 参数?profileTagDebug=true 时,在控制台中有一条日志说:
"[Profile Tag] No cookie found with name profile.consent.given".
当我使用值true 手动设置此 cookie 时,一切都开始正常工作,所有其他需要的 cookie 和负责跟踪用户行为的本地存储数据都已正确设置。
您是否发现我们可能做错了什么,这可能导致此 cookie 无法正常工作? Spartacus 库的哪个模块或组件可以解决这个问题?
编辑:这种奇怪行为的原因是我们团队在 CDS 中创建的配置文件标签。它包含:
"consentListener": "type":"cookie","cookieName":"profile.consent.given","cookieValue":"true"},
这使得 cookie profile.consent.given 是必要的,而它不应该是。在没有这部分的情况下使用配置文件标签使一切正常。
【问题讨论】:
-
你说清数据,是不是也清本地存储?我对您的流程有点困惑,因为如果您清除站点数据,您可能还会清除本地存储,对吧?
-
是的,我的意思是清除本地存储时的场景。当我只删除 cookie 时,在本地存储中我仍然有
electronics-spa-consentReferenceToken和profiletag位置,这使得 CDS 集成工作正常。但是当我清除所有站点数据时,cookieprofile.consent.given永远不会重新创建,因此本地存储中的这些位置也将不存在。
标签: cookies spartacus-storefront