Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Node JS internet gateway/captive portal like used in public WiFi hotspots

I want to build a node js internet gateway/captive portal. So I can have a user 'authorize' his mac address or ip address if the mac address is not possible like used for wifi hotspots

So what I have in mind is node can have a dhcp server and it gives its ip address as the gateway. So if the user loads a page on the web browser it gives them an authentication screen and they can then log in and the gateway can then route its packets correctly.

How can I do the authorization step with node.js so if they're not logged in it presents a log in page & if they are to route the packets correctly?

like image 876
Tarang Avatar asked Mar 21 '13 15:03

Tarang


1 Answers

You need couple of pieces to put this together.

#1: http proxy - If you can run a DHCP server and assign IP addresses, then you can run and http-proxy to capture all internet traffic.

#2: You'll then need to add authentication logic to this proxy which can check for a cookie, magic packet, token or something that verifies access and lets them through or redirects to login page.

node-http-proxy is a very popular and flexible node http proxy server that you can easily add your own logic to.

node-http-auth-proxy is another such project with an example of how to handle authentication built in.

Having a proxy also allows you to whitelist/blacklist sites/IPs, something you may wanna do based on your target audience.

like image 86
Mrchief Avatar answered Sep 20 '22 17:09

Mrchief