Add captive portal login

This commit is contained in:
Thijs Raymakers 2025-04-23 22:16:03 +02:00
parent 97f1eace3d
commit 07fae7b603
No known key found for this signature in database
2 changed files with 40 additions and 0 deletions

38
main.py Normal file
View file

@ -0,0 +1,38 @@
from unificontrol import UnifiClient
from dotenv import load_dotenv
from os import getenv
from ssl import get_server_certificate
from flask import Flask, request
app = Flask(__name__)
global unifi
def main():
load_dotenv()
HOSTNAME = str(getenv("HOSTNAME"))
USERNAME = str(getenv("USERNAME"))
PASSWORD = str(getenv("PASSWORD"))
cert = get_server_certificate((HOSTNAME, 443))
global unifi
unifi = UnifiClient(host=HOSTNAME,
username=USERNAME, password=PASSWORD, cert=cert)
app.run(host="0.0.0.0", port=80)
@app.route('/guest/s/default/')
def root():
ap = request.args.get('ap')
id = request.args.get('id')
ssid = request.args.get('ssid')
url = request.args.get('url')
ret = f"{ap}\t{id}\t{ssid}\t{url}"
print(ret)
unifi.authorize_guest(id, 1)
return ret
if __name__ == "__main__":
main()

View file

@ -2,11 +2,13 @@ blinker==1.9.0
certifi==2025.1.31
charset-normalizer==3.4.1
click==8.1.8
dotenv==0.9.9
Flask==3.1.0
idna==3.10
itsdangerous==2.2.0
Jinja2==3.1.6
MarkupSafe==3.0.2
python-dotenv==1.1.0
requests==2.32.3
unificontrol @ git+https://github.com/ThijsRay/unificontrol@bc595d0b17d38f45d624fe08c144e322484fe298
urllib3==2.4.0