让我们说我想跟踪用户的IP并限制特定用户访问我的网站。
在我的脑海中,我可以通过服务器上的Meteor方法调用类似this.connection.clientAddress
的内容并访问用户的IP地址,然后将该IP地址存储在MongoDB文档中。然后根据现有的禁用IP检查每个访问者的IP,并相应地限制其访问。
但我的想法是,一旦我们进入成千上万的ID并且不得不为每个用户调用和访问MongoDB文档这似乎是一个非常糟糕的主意,这将是一个昂贵且缓慢的过程。
有没有更好的方法来完成这项工作而无需经常调用MongoDB?
答案 0 :(得分:0)
当有人通过Accounts.onLogin登录时,您可以查看IP地址,并相应地更新用户的文档。
答案 1 :(得分:0)
根据您需要更新IP列表的频率,您可以在单独的URL上使用静态文件来检索IP列表并将其缓存在服务器上。
例如,在AWS(https://mybucket.s3.amazonaws.com/restricted-ips.json)中的S3存储桶中创建文件。访问您的应用程序时,它可以检索此文件,将其缓存在服务器上(根据您的需要在给定的时间内),并根据该列表检查客户端的IP。当您希望在受限制的IP列表中添加或删除IP时,您只需要更新该文件,并且在缓存过期后,您的应用程序的任何实例都将收到更新的列表。
当然,如果此列表不经常更新,您也可以将其烘焙到应用程序本身。但是,只要您需要更新IP列表,就需要重新部署。