# 授权管理系统 - 后端服务 浙江贝凡企业授权管理系统的后端服务,基于 Node.js + TypeScript + Express + SQLite。 ## 技术栈 - **Node.js**: 运行时环境 - **TypeScript**: 类型安全 - **Express**: Web 框架 - **SQLite**: 数据库 - **JWT**: 身份认证 - **bcryptjs**: 密码加密 ## 项目结构 ``` backend/ ├── routes/ # API 路由 │ ├── auth.ts # 认证路由 │ ├── serials.ts # 序列号路由 │ └── companies.ts # 企业路由 ├── middleware/ # 中间件 │ └── auth.ts # 认证中间件 ├── scripts/ # 脚本 │ └── init-db.ts # 数据库初始化 ├── utils/ # 工具函数 │ └── database.ts # 数据库连接 ├── types/ # 类型定义 │ └── index.d.ts # TypeScript 类型 ├── data/ # 数据文件 │ └── database.sqlite ├── server.ts # 服务器入口 ├── tsconfig.json # TypeScript 配置 ├── .env # 环境变量 └── package.json # 项目配置 ``` ## 安装 ```bash pnpm install ``` ## 开发 启动开发服务器(支持热重载): ```bash pnpm dev ``` 服务器将在 http://localhost:3000 运行 ## 构建 构建 TypeScript 为 JavaScript: ```bash pnpm build ``` ## 生产 启动生产服务器: ```bash pnpm start ``` ## 数据库初始化 初始化数据库和默认管理员账户: ```bash pnpm init-db ``` ## 环境变量 创建 `.env` 文件: ```env PORT=3000 JWT_SECRET=your-secret-key-here ``` ## 默认账户 初始化后默认创建的管理员账户: - 用户名: admin - 密码: Beifan@2026 ## API 接口 ### 认证接口 - `POST /api/auth/login` - 用户登录 - `GET /api/auth/profile` - 获取用户信息 - `POST /api/auth/change-password` - 修改密码 - `PUT /api/auth/profile` - 更新用户资料 ### 序列号接口 - `POST /api/serials/generate` - 生成序列号 - `POST /api/serials/generate-with-prefix` - 使用自定义前缀生成序列号 - `POST /api/serials/:serialNumber/qrcode` - 生成二维码 - `GET /api/serials/:serialNumber/query` - 查询序列号 - `GET /api/serials/` - 获取序列号列表 - `PATCH /api/serials/:serialNumber` - 更新序列号 - `POST /api/serials/:serialNumber/revoke` - 吊销序列号 ### 企业接口 - `GET /api/companies/` - 获取企业列表 - `GET /api/companies/:companyName` - 获取企业详情 - `PATCH /api/companies/:companyName` - 更新企业信息 - `DELETE /api/companies/:companyName` - 删除企业 - `DELETE /api/companies/:companyName/serials/:serialNumber` - 删除企业下的序列号 - `POST /api/companies/:companyName/revoke` - 吊销企业 - `GET /api/companies/stats/overview` - 获取统计数据 ## License MIT