diff --git a/app.py b/app.py index d984353..e5496d1 100644 --- a/app.py +++ b/app.py @@ -49,8 +49,15 @@ class UnifiAPI: self.base_url = config['unifi']['controller'] self.session = requests.Session() self.session.verify = False + self.api_key = config['unifi']['api_key'] + + # Get CSRF token first + csrf_response = self.session.get(f"{self.base_url}/api/auth/csrf-token") + csrf_token = csrf_response.headers.get('X-CSRF-Token') + self.headers = { - 'Authorization': f'Bearer {config["unifi"]["api_key"]}', + 'X-CSRF-Token': csrf_token, + 'X-API-KEY': self.api_key, 'Accept': 'application/json' } self.site_id = self.get_site_id() @@ -61,7 +68,6 @@ class UnifiAPI: response.raise_for_status() sites = response.json()['data'] return sites[0]['_id'] - def get_all_devices(self): url = f"{self.base_url}/proxy/network/api/s/{self.site_id}/stat/device" response = self.session.get(url, headers=self.headers)