{
    "title": "Authentication & JWT",
    "description": "Hướng dẫn chi tiết về cơ chế xác thực người dùng và phân quyền truy cập API trên Canifa AI Platform.",
    "diagram": "diagrams/auth-routing.svg",
    "sections": [
        {
            "title": "JWT Lifecycle",
            "type": "text",
            "content": "Hệ thống sử dụng tiêu chuẩn <b>HS256</b> để ký các token xác thực. Một Access Token bao gồm các thông tin:<br>- <code>user_id</code>: ID định danh duy nhất.<br>- <code>role</code>: Quyền hạn (Admin, Editor, Viewer).<br>- <code>exp</code>: Thời gian hết hạn (mặc định 7 ngày).<br>Khi token hết hạn, người dùng sẽ bị <code>auth.js</code> tự động điều hướng quay lại trang <code>login.html</code>."
        },
        {
            "title": "Cơ chế bảo mật",
            "type": "text",
            "content": "- <b>Password Hashing:</b> Mật khẩu được mã hóa bằng <code>bcrypt</code> trước khi lưu vào DB.<br>- <b>Middleware Guard:</b> Mọi API route (trừ login/register) đều được bọc bởi <code>CanifaAuthMiddleware</code> để kiểm tra tính hợp lệ của header <code>Authorization</code>."
        },
        {
            "title": "API Auth",
            "type": "api",
            "endpoints": [
                { "method": "POST", "path": "/api/auth/login", "description": "Đăng nhập và nhận token JWT." },
                { "method": "POST", "path": "/api/auth/logout", "description": "Hủy phiên làm việc hiện tại." },
                { "method": "GET", "path": "/api/auth/verify", "description": "Kiểm tra token còn hiệu lực hay không." }
            ]
        }
    ]
}
