Python 在Django Rest框架中识别唯一的匿名用户

Python 在Django Rest框架中识别唯一的匿名用户,python,django,django-rest-framework,throttling,Python,Django,Django Rest Framework,Throttling,我正在RESTAPI中应用节流。对于注册用户它的工作很好,但对于匿名用户,我无法识别具有100%证书的唯一用户 Django Rest框架使用HTTP头中的HTTP\u X\u FORWARDED\u和REMOTE\u ADDR,根据匿名用户的IP地址识别匿名用户。但它将唯一NAT后面的所有客户端视为单个客户端 那么,识别唯一匿名用户的可靠方法是什么,这样才能正确限制API?我认为您可以通过会话来解决这一问题,这是唯一可以用于跟踪匿名用户的唯一字段 会话基于cookie,因此当匿名用户返回应用程

我正在RESTAPI中应用节流。对于注册用户它的工作很好,但对于匿名用户,我无法识别具有100%证书的唯一用户

Django Rest框架使用HTTP头中的
HTTP\u X\u FORWARDED\u和
REMOTE\u ADDR
,根据匿名用户的IP地址识别匿名用户。但它将唯一NAT后面的所有客户端视为单个客户端


那么,识别唯一匿名用户的可靠方法是什么,这样才能正确限制API?

我认为您可以通过
会话来解决这一问题,这是唯一可以用于跟踪匿名用户的唯一字段

会话基于cookie,因此当匿名用户返回应用程序时,如果cookie仍然有效,您将能够为用户检索正确的会话


我认为此链接可能会有所帮助:

我不确定您是否能做到这一点-您将始终遇到NAT网络的问题。这是你无法控制的——它与网络通信的运行方式有关。。您可以做的是实现来宾机制,在该机制中,您将向请求附加短期会话cookie。为此,您必须关注构建自己的中间件。这一定是从事API和分析工作的人员的常见问题,因为在某些情况下,他们必须识别用户。我只是想知道识别唯一匿名用户的标准方法是什么。。。为了便于讨论:如果有这样一种方法来识别请求背后的请求者,那么当前的身份验证技术不会利用这种方法吗?即使怀疑,如果有人知道更好的答案,我也会敞开心扉。。。。