node.js - 公共(public) WiFi 热点中使用的 Node JS 互联网网关/强制门户

标签 node.js routing wifi iptables

我想构建一个 Node js 互联网网关/强制门户。因此,如果 mac 地址不可能像用于 wifi 热点一样,我可以让用户“授权”他的 mac 地址或 ip 地址

所以我的想法是 Node 可以有一个 dhcp 服务器,它提供它的 ip 地址作为网关。因此,如果用户在 Web 浏览器上加载一个页面,它会为他们提供一个身份验证屏幕,然后他们可以登录,然后网关可以正确路由其数据包。

我如何使用 node.js 执行授权步骤,以便在他们未登录时显示登录页面以及他们是否要正确路由数据包?

最佳答案

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

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

#2:然后您需要向此代理添加身份验证逻辑,它可以检查 cookie、魔术数据包、 token 或验证访问权限并允许它们通过或重定向到登录页面的东西。

node-http-proxy是一个非常流行且灵活的 Node http 代理服务器,您可以轻松地 add your own logic到。

node-http-auth-proxy是另一个这样的项目 example如何处理内置身份验证。

拥有代理还可以让您将网站/IP 列入白名单/黑名单,这是您可能希望根据目标受众执行的操作。

关于node.js - 公共(public) WiFi 热点中使用的 Node JS 互联网网关/强制门户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15552119/

相关文章:

javascript - 从 master 访问 worker 环境(Node.js 集群)

angularjs - 模板未在 Angular 路由中加载

php - 获取所有路由,Laravel 4

java - 在 IBM Websphere 环境中设置负载平衡器服务器

iphone - 一个可以在wi-fi和蓝牙之间进行选择的项目

javascript - 无法通过 Node.js 将 Heroku 配置变量传递到 Angular CLI 应用程序

node.js - 如何在node.js中使用crypto.createSign和DiffieHellman私钥?

C# 使用 Managed Wifi API 连接到 Wifi 网络

node.js - Redis Cloud 和 connect-redis : the client is closed

java - java代码是什么来获取连接到笔记本电脑wifi的设备的ip地址和mac?