Fix node auth
All checks were successful
release-image / release-image (push) Successful in 2m7s

This commit is contained in:
Logan Cusano
2025-06-08 00:18:46 -04:00
parent ac23a5ec84
commit e89e67f33a
4 changed files with 21 additions and 5 deletions

View File

@@ -187,17 +187,28 @@ class System:
class ActiveClient:
"""
The active client model in memory for quicker access
The active client model in memory for quicker access
"""
websocket = None
active_token: DiscordId = None
nickname = None
access_token = None
nickname: str = None
access_token: str = None
def __init__(self, websocket= None, active_token:DiscordId=None):
def __init__(self, websocket=None, active_token: DiscordId = None, nickname: str = None, access_token: str = None):
self.active_token = active_token
self.websocket = websocket
self.nickname = nickname
self.access_token = access_token
def __str__(self):
"""
Returns a neatly formatted string representation of the ActiveClient object.
"""
return (f"--- Active Client ---\n"
f"Active Token: {self.active_token if self.active_token else 'N/A'}\n"
f"Nickname: {self.nickname if self.nickname else 'N/A'}\n"
f"Access Token: {'[REDACTED]' if self.access_token else 'N/A'}\n"
f"Websocket Connected: {'Yes' if self.websocket else 'No'}")
class UserRoles(str, Enum):
ADMIN = "admin"

View File

@@ -24,7 +24,8 @@ def role_required(required_role: UserRoles):
auth_type = current_user_identity['type']
if auth_type == "node":
node = app.active_clients.get("client_id")
node = current_app.active_clients.get(user_id)
print("Node", node)
if not node:
abort(401, "Node not found or invalid token.")

View File

@@ -45,7 +45,9 @@ async def request_token_route():
# --- Logic for selecting a preferred ID based on client_id (TODO) ---
selected_id = avail_ids[0]
print("Selected Discord ID: ", selected_id)
current_app.active_clients[client_id].active_token = selected_id
print(current_app.active_clients[client_id])
# --- End of logic for selecting a preferred ID ---

View File

@@ -26,6 +26,8 @@ async def register_client(websocket, client_id, client_nickname):
# Create a JWT for the client
current_app.active_clients[client_id].access_token = create_access_token(identity={"id": client_id, "username": client_nickname, "type": "node"})
print(current_app.active_clients[client_id])
# Start a task to listen for messages from this client
asyncio.create_task(listen_to_client(websocket, client_id))