我在 Rest api 中应用 throttle 。对于注册用户,它工作正常,但对于匿名用户,我无法 100% 确定地识别唯一用户。
Django Rest Framework 使用 http header 中的 HTTP_X_FORWARDED_FOR 和 REMOTE_ADDR 根据 IP 地址识别匿名用户。但它将唯一 NAT 后面的所有客户端视为单个客户端。
那么识别唯一匿名用户以便适当限制 API 的可靠方法是什么?
请您参考如下方法:
我认为您可以使用 sessions 来解决这个问题,这是您可以用于跟踪的唯一匿名用户字段。
session 基于 cookie,因此当您的匿名用户返回您的应用程序时,如果 cookie 仍然有效,您将能够为用户检索正确的 session 。
我认为此链接会有所帮助:Django storing anonymous user data
