{
    "title": "Auth & Routing Flow",
    "description": "Tìm hiểu cách hệ thống xác thực người dùng bằng JWT và cơ chế điều hướng trang (routing) thông qua Single Sidebar.",
    "diagram": "diagrams/auth-routing.svg",
    "sections": [
        {
            "title": "Cơ chế Xác thực (JWT)",
            "type": "text",
            "content": "Hệ thống sử dụng JWT (JSON Web Token) để quản lý phiên làm việc. Khi login thành công, token được lưu vào <code>localStorage</code> và gửi kèm trong header <code>Authorization: Bearer <token></code> cho mọi request API.<br>Module <code>auth.js</code> phía client chịu trách nhiệm kiểm tra token (guard) mỗi khi trang web được tải lại."
        },
        {
            "title": "Single Sidebar Navigation",
            "type": "text",
            "content": "Toàn bộ giao diện Platform nằm trong <code>main.html</code>. Khi người dùng click vào một mục trên sidebar, hàm <code>navigateTo(page)</code> sẽ:<br>1. Cập nhật thuộc tính <code>src</code> của Iframe.<br>2. Thêm tham số <code>t=<timestamp></code> để tránh cache trình duyệt.<br>3. Sử dụng <code>history.pushState</code> để cập nhật URL mà không làm tải lại trang."
        },
        {
            "title": "API Authentication Endpoints",
            "type": "api",
            "endpoints": [
                { "method": "POST", "path": "/api/auth/login", "description": "Xác thực user và trả về access_token." },
                { "method": "GET", "path": "/api/auth/me", "description": "Lấy profile và settings của user hiện tại." },
                { "method": "PUT", "path": "/api/auth/me/settings", "description": "Cập nhật Codex Token hoặc OpenAI Key cá nhân." }
            ]
        }
    ]
}
