【问题标题】:how to give some unique id to each anonymous user in django如何为 django 中的每个匿名用户提供一些唯一的 id
【发布时间】:2015-07-29 15:18:31
【问题描述】:

我想创建一个表(postgres)来存储有关哪些用户查看了哪些项目的数据。经过身份验证的用户没问题,但我如何区分一个匿名用户和另一个匿名用户?这是分析目的所必需的。

也许将他们的 IP 地址存储为唯一 ID?我该怎么做?

【问题讨论】:

    标签: python django authentication


    【解决方案1】:

    我认为你应该使用 cookie。

    当一个未通过身份验证的用户发出请求时,查找一个名为whatever(在本例中为“nonuserid”)的cookie。如果 cookie 不存在,则表示它是新用户,因此您应该使用随机 id 设置 cookie。如果存在,您可以使用其中的 id 来识别匿名用户。

    【讨论】:

    • 谢谢你,我试试看告诉你
    【解决方案2】:

    选项 1

    使用 IP 地址。结帐this answer。无需将 IP 写入会话,因为您始终可以在收到请求时获取客户端 IP。

    选项 2

    uuid生成唯一ID,正如doc所说。并在会话中使用给定名称设置 ID,假设它是 USER_ID

    当你收到用户的请求时,检查USER_ID 是否在会话中。如果是这样,读取它的值并将记录写入数据库,如user id visit page X。如果没有,则生成并设置。

    【讨论】:

    • 使用 IP 地址是个坏主意。一些 isp 使用多个代理对流量进行负载平衡,这意味着单个会话可以有多个 IP 地址。其次,很多(千)客户端共享同一个IP地址是很常见的。
    猜你喜欢
    • 2020-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-01
    • 2016-01-15
    相关资源
    最近更新 更多