在Django中跟踪未经身份验证的用户

时间:2017-05-21 09:51:12

标签: django session

我需要在Django网站中跟踪未注册的用户。这用于转换优化目的(例如注册漏斗等)。

到目前为止,我使用的方法是使用IP地址作为user_id的代理。由于各种众所周知的原因,这导致了捏造/不可靠的结果。

我可以通过在服务器端设置会话变量来充分解决我的问题吗?一个说明性的例子很棒。

例如,目前我脑子里有几种方法。一个是request.session["temp_id"] = random.randint(1,1000000),然后根据temp_id进行跟踪。

另一个是每次未经授权的用户点击我的网络应用的目标网页时设置会话变量,如下所示:

if not request.session.exists(request.session.session_key):
    request.session.create()

从此开始,我只需通过request.session.session_key跟踪它们。这是一个合理的策略吗?我需要注意哪些主要的边缘情况(如果有的话)?

1 个答案:

答案 0 :(得分:1)

Cookie是最简单的方法,但考虑到某些用户可以在浏览器中关闭Cookie。

因此,对于这些用户,您可以使用javascript本地存储来设置一些数据。关闭浏览器后,此信息将被删除,但它可以用于漏斗目的。还有一些人可以关闭javascript。

另一种方法是在生成模板时将自定义数据(密钥)放在页面的每个链接中。换句话说,你将session_id存储在html页面中,并在点击时通过url参数发送。 csrf令牌会发生类似的事情。看看那个。