Session.CFID / CFTOKEN VS Client.CFID / CFTOKEN

时间:2012-04-26 08:20:13

标签: session coldfusion

我们的应用程序使用客户端变量管理来唯一识别网站访问者,并最终将其存储为电子商务订单的ID。

我们的客户订单表将“10000032:98517605:77134665”(cfid + cftoken)等字符串保存为其唯一ID。

现在我们需要摆脱客户端变量,所以我们的代码中不再有“CLIENT.cfid”。

我想到的第一件事就是用“SESSION.cfid”和“SESSION.cftoken”代替它。但最大的疑问是:

生成的id和令牌是否仍然与现有ID无关? 是否有可能进行此类更改将导致重新生成“10000032:98517605:77134665”?

如何考虑现有的访客ID,我该如何制作独特的访客ID?

1 个答案:

答案 0 :(得分:4)

我会设置一个新的会话值onSessionStart,您可以保证该会话值是唯一的。因此,在Application.cfc的onSessionStart方法中,您可以设置如下内容:

<cfset Session.CustomerID = CreateUUID() />

这样,当会话开始时,UUID(保证是唯一的)将被放入会话范围。然后,您可以根据需要使用它。如果这需要持久化,您也可以将其写入cookie(因为会话不像客户端变量那样长期存在)。