我正在使用grails的联盟系统,用户可以在其中创建单独的链接,访问此链接的访客将获得具有唯一会话ID的cookie。如果几天后有些客人再次访问我的webApp,我想知道他们已经在这里,并且用户过去曾将这位访客带到我的网站。
你将如何在grails中实现这一点?我会说过滤器。但是我应该如何实现这样的过滤器呢?使用grails默认会话ID不会很好,因为它会失效并且由于服务器内存(RAM)而无法升级grails会话生命周期。或者sessionId是否始终存在并且只刷新,因此grails中的会话生命周期可能是1小时,我能够跟踪所有内容超过一小时?
或者我应该为我的目的设置一个具有唯一会话ID的新cookie?
答案 0 :(得分:1)
您可能至少需要一个过滤器和一个Cookie。
当访问者第一次访问您的网站时,我想象您将联属会员ID定义为请求参数。您可能需要创建一个before
过滤器,以查看访问者是否已设置了Cookie。
如果您只想尝试将销售额与关联企业相关联,那么您不需要唯一的访问者ID,只需要引用访问者的联盟ID。在过滤器内部,如果存在会员ID请求参数但没有cookie,则可以设置cookie。然后,当您处理销售时,您可以检查联属会员cookie是否存在。
如果您正在尝试获取更高级的指标,那么您可能需要两个过滤器(或一个过滤器来完成两件事)。一个用于设置cookie,另一个用于跟踪访问。一旦你知道你想要跟踪的事情,你也可以在用户的会话中放置标志以保持你的指标准确(即如果你不考虑每个请求访问,你可能希望在增加后在用户的会话中放置一个标记访问者的访问次数。)