2013-03-21 19 views
7

使用我想建立一個節點JS互聯網網關/強制網絡門戶。所以我可以有一個用戶'授權'他的MAC地址或IP地址,如果MAC地址是不可能的像用於WiFi熱點節點JS互聯網網關/強制網絡門戶就像在公共WiFi熱點

所以我心裏想的是節點可以有一個DHCP服務器,它給出了它的IP地址作爲網關。因此,如果用戶在Web瀏覽器上加載頁面,則會爲他們提供身份驗證屏幕,然後他們可以登錄並且網關可以正確地路由其數據包。

如何使用node.js執行授權步驟,如果它們沒有登錄,則會在頁面&中顯示登錄,如果它們要正確路由數據包?

+2

我會用你的Node.js應用程序的客戶端和Web界面的管理,而是使用系統的路由功能。酷項目。我希望有一個很好的解決方案。 – Brad 2013-03-21 15:56:10

+0

謝謝!我正在考慮使用iptables來路由和更改使用節點的規則,但我不確定如何在用戶沒有會話時將流量重定向到強制門戶 – Akshat 2013-03-21 16:06:03

+0

一種方法是響應IP查詢的DNS查詢你的俘虜門戶。但這是有問題的,因爲客戶端通常會有一些DNS條目已經被緩存。另外,具有惡意軟件的客戶端通常會將一些DNS查詢重定向到本地主機或外部DNS服務器。最後,客戶端可以自己配置DNS服務器。你需要做的是透明地將端口80上的所有TCP流量重定向到你的服務器。我不知道該怎麼做。 – Brad 2013-03-21 16:12:50

回答

3

你需要兩三件,放在了一起。

#1:HTTP代理 - 如果你可以運行一個DHCP服務器,分配IP地址,那麼你就可以運行和HTTP代理來捕獲所有的互聯網流量。

#2:然後您需要驗證邏輯添加到這個代理可以檢查一個cookie,魔術包,令牌或東西,驗證訪問,並讓他們通過或重定向到登錄頁面。

node-http-proxy是一個非常受歡迎的和靈活的節點HTTP代理服務器,你可以很容易地add your own logic來。

node-http-auth-proxy是另一個這樣的項目,如何處理身份驗證內置的。

有一個代理example也可以讓你白名單/黑名單的網站/ IPS,有些東西你可以做基於您的目標受衆想。