2015-10-16 91 views
2

我在Rest apis中应用了限制。对于注册用户而言,其工作正常,但对于匿名用户,我无法用100%证书来识别唯一用户。在Django Rest框架中识别唯一的匿名用户

Django Rest Framework使用http头中的HTTP_X_FORWARDED_FORREMOTE_ADDR来根据IP地址识别匿名用户。但它将所有客户端作为单一客户端对待一个独特的NAT。

那么识别唯一匿名用户的可靠方法是什么,以便apis可以被正确地限制?

+0

我不知道你能做到这一点 - 你将永远有NAT-ED网络的这个问题。这是你无法控制的 - 它与网络通信的运作有关。你可以做的是实现一个访客机制,在那里你将短暂的会话cookie附加到请求中。为此你必须关心构建你自己的中间件。 – Roba

+0

对于正在从事apis和分析工作的人员,这一定是常见问题,因为他们在某个时候必须识别用户。我只想知道识别独特匿名用户的标准方式是什么? –

+0

那么......为了辩论的缘故:如果有这样一种方法来识别请求背后的请求者,那么当前的认证技术是否会利用这一点呢?即使怀疑,如果有人知道更好的答案,我会保持开放。 – Roba

回答

2

我想你可以用sessions来解决这个问题,这是匿名用户唯一可以用来跟踪的唯一字段。

会话基于cookie,所以当匿名用户返回到您的应用程序,如果cookie仍然有效,您将能够检索用户的适当会话。

我觉得这个链接可以帮助:Django storing anonymous user data