我们的应用程序使用客户端变量管理来唯一识别网站访问者,并最终将其存储为电子商务订单的ID。
我们的客户订单表将“10000032:98517605:77134665”(cfid + cftoken)等字符串保存为其唯一ID。
现在我们需要摆脱客户端变量,所以我们的代码中不再有“CLIENT.cfid”。
我想到的第一件事就是用“SESSION.cfid”和“SESSION.cftoken”代替它。但最大的疑问是:
生成的id和令牌是否仍然与现有ID无关? 是否有可能进行此类更改将导致重新生成“10000032:98517605:77134665”?
如何考虑现有的访客ID,我该如何制作独特的访客ID?
答案 0 :(得分:4)
我会设置一个新的会话值onSessionStart
,您可以保证该会话值是唯一的。因此,在Application.cfc的onSessionStart
方法中,您可以设置如下内容:
<cfset Session.CustomerID = CreateUUID() />
这样,当会话开始时,UUID(保证是唯一的)将被放入会话范围。然后,您可以根据需要使用它。如果这需要持久化,您也可以将其写入cookie(因为会话不像客户端变量那样长期存在)。