像公共WiFi热点中使用的节点JS互联网网关/强制门户

我想build立一个节点的互联网网关/强制门户网站。 所以我可以有一个用户“授权”他的MAC地址或IP地址,如果MAC地址是不可能的像用于WiFi热点

所以我想到的是节点可以有一个DHCP服务器,它将其IP地址作为网关。 因此,如果用户在networking浏览器上加载一个页面,它会给他们一个authentication屏幕,然后他们可以login,然后网关可以正确地路由它的数据包。

我怎样才能做node.js的授权步骤,所以如果他们没有login它提出了login页面,如果他们要正确的路由数据包?

你需要几件才能把它放在一起。

#1:http代理 – 如果你可以运行DHCP服务器并分配IP地址,那么你可以运行http-proxy来捕获所有的互联网stream量。

#2:然后你需要添加validation逻辑到这个代理,可以检查一个cookie,魔术包,令牌或validation访问,并让他们通过或redirect到login页面。

node-http-proxy是一个非常stream行和灵活的节点http代理服务器,您可以轻松添加自己的逻辑 。

node-http-auth-proxy是另一个这样的项目,其中有一个如何处理内置authentication的例子 。

拥有一个代理也可以让你白名单/黑名单网站/ IPs,你可能想要根据你的目标受众做的事情。