首页 > 解决方案 > 在用户接受 GDPR 和使用 cookie 之前阻止快速会话设置会话 ID

问题描述

出于 GDPR 的原因,我试图让快速会话等到用户接受使用 cookie 后再设置会话 ID,因为现在会话 ID 是立即设置的。

我正在使用快递、快递和护照。

我尝试使用“saveUninitialized”并将其设置为 false 以防止这种情况,但没有任何运气..

在 Mac 上运行的一切都是最新的。

我有一个横幅,用户可以接受使用 cookie,并且横幅设置了一个“cookiesAccepted”cookie 以表明我们现在可以使用 cookie,所以我试图让快速会话等待该 cookie 存在或手动设置它当用户登录并接受使用 cookie 时。

这是用于设置快速会话的内容

app.use(session({ 
  secret: 'secret', 
  cookie: { maxAge: 24 * 60 * 60 * 1000 }, // 24 hours
  resave: true, 
  saveUninitialized: false, 
}));

我也尝试设置resavefalse等等,但似乎无法阻止 cookie 在第一次加载时设置..

我只想在用户登录时设置会话ID,使用护照登录功能并防止它在第一页加载时自动设置。

我可能会遗漏一些东西

标签: javascriptnode.jsexpressexpress-session

解决方案


从我自己的一些研究后可以看出,会话 cookie 似乎不受 GDPR 法律的同意部分的约束。这个链接对豁免有一个非常清楚的解释

同意要求的豁免

某些 cookie 不受同意要求的约束,因此不受预防性阻止(尽管您仍然需要告知用户您对 cookie 的使用 - 请参阅下面的警告框)。豁免情况如下:

  • 提供服务所必需的技术 cookie。其中包括偏好 cookie、会话 cookie、负载平衡等。

  • 由您(非第三方)直接管理的统计 cookie,前提是数据不用于分析*

  • 匿名统计第三方 cookie(例如 Google Analytics)*

*此豁免可能不适用于所有地区,因此受当地特定法规的约束。

也就是说,您仍然需要告知用户您正在使用 cookie 的事实。只要用户可以从网站上的任何位置清晰、轻松地访问该信息,您网站上的横幅或指向 cookie 策略的链接就可以使用。


推荐阅读