from fastapi import APIRouter, Request from log import log import hashlib router = APIRouter() mock_users = {"admin": hashlib.sha256("password123".encode()).hexdigest()} @router.post("/login") async def login(request: Request): data = await request.json() username = data.get("username") password = data.get("password") if not username or not password: return {"error": "Username and password required."} hashed_pw = hashlib.sha256(password.encode()).hexdigest() stored_pw = mock_users.get(username) if stored_pw and stored_pw == hashed_pw: log(f"🔐 User {username} logged in successfully.") return {"message": f"User {username} logged in."} else: log(f"❌ Login failed for user {username}.") return {"error": "Invalid username or password."} @router.post("/add_user") async def add_user(request: Request): data = await request.json() username = data.get("username") password = data.get("password") if not username or not password: return {"error": "Username and password required."} if username in mock_users: return {"error": "User already exists."} mock_users[username] = hashlib.sha256(password.encode()).hexdigest() log(f"👤 Added new user: {username}") return {"message": f"User {username} added."} @router.post("/delete_user") async def delete_user(request: Request): data = await request.json() username = data.get("username") if username not in mock_users: return {"error": "User not found."} del mock_users[username] log(f"🗑️ Deleted user: {username}") return {"message": f"User {username} deleted."}