【发布时间】:2015-07-29 15:18:31
【问题描述】:
我想创建一个表(postgres)来存储有关哪些用户查看了哪些项目的数据。经过身份验证的用户没问题,但我如何区分一个匿名用户和另一个匿名用户?这是分析目的所必需的。
也许将他们的 IP 地址存储为唯一 ID?我该怎么做?
【问题讨论】:
标签: python django authentication
我想创建一个表(postgres)来存储有关哪些用户查看了哪些项目的数据。经过身份验证的用户没问题,但我如何区分一个匿名用户和另一个匿名用户?这是分析目的所必需的。
也许将他们的 IP 地址存储为唯一 ID?我该怎么做?
【问题讨论】:
标签: python django authentication
我认为你应该使用 cookie。
当一个未通过身份验证的用户发出请求时,查找一个名为whatever(在本例中为“nonuserid”)的cookie。如果 cookie 不存在,则表示它是新用户,因此您应该使用随机 id 设置 cookie。如果存在,您可以使用其中的 id 来识别匿名用户。
【讨论】:
使用 IP 地址。结帐this answer。无需将 IP 写入会话,因为您始终可以在收到请求时获取客户端 IP。
由uuid生成唯一ID,正如doc所说。并在会话中使用给定名称设置 ID,假设它是 USER_ID。
当你收到用户的请求时,检查USER_ID 是否在会话中。如果是这样,读取它的值并将记录写入数据库,如user id visit page X。如果没有,则生成并设置。
【讨论】: