我们正在开发一种新的开源工具,使用户能够投票。无需登录。
现在面临的挑战是:我们如何确保每天只从特定机器调用 API 一次,而不需要用户登录?
我们认为这很容易被欺骗,但也许有一些我们没有想到的解决方案。
如果您不要求用户在您的网站/应用程序上注册,则没有完整的证明解决方案。由于您不需要他们注册/登录,因此您仅限于两种选择:IP 或 cookie 的唯一投票。
IP地址
通过将投票的 IP 地址存储在数据存储中,然后在下次投票来自同一个 IP 时引用该地址,易于实现。但是,许多 ISP(例如 AOL)可以为多个用户使用相同的 IP 地址(通过代理)。因此,您将阻止那些没有投票的人能够投票。
曲奇饼
这种方法将更加特定于客户,这意味着一旦他们从该机器投票,他们将无法再次投票。然而,这更不可靠,因为用户可以删除 cookie 并再次投票(或在没有 cookie 的同一台机器上打开不同的浏览器)。
简而言之,如果您不能强制用户注册并在您的系统中建立唯一性,您可以依赖上述任一解决方案,但它们不会很健壮,并且会有自己的局限性。