Phase 7: Auth & Security upgrade (JWT, 2FA, Login UI)

This commit is contained in:
Gan, Jimmy
2026-02-19 03:47:48 +08:00
parent f3db7d3654
commit 651bc0580e
12 changed files with 495 additions and 38 deletions
+15 -6
View File
@@ -1,11 +1,20 @@
from fastapi import FastAPI
from fastapi import FastAPI, Depends
from fastapi.staticfiles import StaticFiles
from routers import docker_router, gitea, files, terminal, system
from routers import docker_router, gitea, files, terminal, system, auth
import auth as auth_module
app = FastAPI(title="NAS Dashboard")
app.include_router(docker_router.router, prefix="/api/docker")
app.include_router(gitea.router, prefix="/api/gitea")
app.include_router(files.router, prefix="/api/files")
app.include_router(system.router, prefix="/api/system")
# Public auth endpoints
app.include_router(auth.router, prefix="/api/auth", tags=["auth"])
# Protected endpoints
app.include_router(docker_router.router, prefix="/api/docker", dependencies=[Depends(auth_module.get_current_user)])
app.include_router(gitea.router, prefix="/api/gitea", dependencies=[Depends(auth_module.get_current_user)])
app.include_router(files.router, prefix="/api/files", dependencies=[Depends(auth_module.get_current_user)])
app.include_router(system.router, prefix="/api/system", dependencies=[Depends(auth_module.get_current_user)])
# WebSocket endpoint (auth handled inside handler via Query param)
app.add_api_websocket_route("/ws/terminal", terminal.ws_endpoint)
app.mount("/", StaticFiles(directory="/app/static", html=True), name="static")