例如,我们的应用程序使用客户端变量管理来唯一识别网站访问者,并最终将其存储为电子商务订单的 ID。
我们的客户订单表将“10000032:98517605:77134665”(cfid+cftoken) 等字符串保存为其唯一 ID。
现在我们需要删除客户端变量,这样我们的代码中就不再有“CLIENT.cfid”了。
我想到的第一件事就是简单地将其替换为“SESSION.cfid”和“SESSION.cftoken”。但最大的疑问是:
生成的 ID 和 token 相对于现有的 ID 和 token 仍然是唯一的吗? 进行这样的更改是否可能会导致重新生成“10000032:98517605:77134665”?
如何制作唯一的访客 ID,同时考虑现有的访客 ID?
最佳答案
我会设置一个新的 session 值onSessionStart
,您可以保证它是唯一的。因此,在Application.cfc的onSessionStart
方法中,您可以设置如下内容:
<cfset Session.CustomerID = CreateUUID() />
这样,当 session 开始时,一个 UUID(保证唯一)将被放入 session 范围中。然后您可以将其用于您需要的任何用途。如果需要持久化,您也可以将其写入 cookie(因为 session 不像客户端变量那样长期持久化)。
关于Session.CFID/CFTOKEN VS Client.CFID/CFTOKEN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10329638/