# NJUTIC-Fronted **Repository Path**: Asim0v/NJUTIC-Fronted ## Basic Information - **Project Name**: NJUTIC-Fronted - **Description**: NJUTIC-Fronted - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-01 - **Last Updated**: 2025-08-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # NJUTIC Frontend 基于 Vue 3 + TDesign Vue Next 的前端项目,提供用户登录认证功能。 ## 功能特性 ### 🔐 安全认证 - **密码加密传输**:使用 AES 加密算法对密码进行客户端加密 - **请求签名验证**:使用 HMAC-SHA256 对请求进行签名,防止数据篡改 - **JWT Token 认证**:支持基于 JWT 的用户身份验证 - **Token 自动管理**:自动处理 token 过期、刷新等逻辑 ### 🎨 界面设计 - **现代化UI**:基于 TDesign Vue Next 组件库 - **响应式设计**:支持桌面端和移动端适配 - **优雅交互**:流畅的登录体验和错误提示 ### 🛠️ 技术栈 - **Vue 3**:采用 Composition API - **TDesign Vue Next**:腾讯开源的 Vue 3 组件库 - **Vite**:快速的构建工具 - **Crypto-js**:加密算法库 - **Axios**:HTTP 请求库 ## 项目结构 ``` src/ ├── components/ # 组件目录 │ └── LoginPage.vue # 登录页面组件 ├── utils/ # 工具类目录 │ ├── api.js # API 请求封装 │ └── crypto.js # 加密工具类 ├── assets/ # 静态资源 ├── App.vue # 根组件 └── main.js # 入口文件 ``` ## 快速开始 ### 环境要求 - Node.js >= 20.19.0 - npm >= 10.0.0 ### 安装依赖 ```bash npm install ``` ### 启动开发服务器 ```bash npm run dev ``` ### 构建生产版本 ```bash npm run build ``` ### 预览生产构建 ```bash npm run preview ``` ## 登录功能 ### 测试账号 - **用户名**:admin - **密码**:admin123 ### 安全特性 1. **密码加密** - 客户端使用 AES 算法加密密码 - 加密密钥:`njutic-frontend-2025` - 传输过程中密码不会明文暴露 2. **请求签名** - 使用 HMAC-SHA256 算法生成请求签名 - 签名密钥:`njutic-request-sign` - 防止请求数据被篡改 3. **Token 管理** - 登录成功后自动保存 JWT token - 自动在请求头中添加 Authorization - 支持 token 过期检测和处理 ### API 接口设计 登录接口示例: ```javascript POST /api/auth/login Content-Type: application/json { "username": "admin", "password": "encrypted_password", "timestamp": 1709513600000, "signature": "request_signature" } ``` 响应示例: ```javascript { "code": 200, "message": "登录成功", "data": { "token": "jwt_token_string", "user": { "username": "admin", "role": "admin" } } } ``` ## 后端集成指南 ### Spring Boot 后端配置 1. **依赖配置** ```xml org.springframework.boot spring-boot-starter-security io.jsonwebtoken jjwt 0.9.1 ``` 2. **密码解密** ```java @Service public class CryptoService { private static final String SECRET_KEY = "njutic-frontend-2025"; public String decryptPassword(String encryptedPassword) { // 使用相同的密钥解密前端传来的密码 // 具体实现根据所选的加密库而定 } } ``` 3. **签名验证** ```java @Component public class SignatureValidator { private static final String SIGN_KEY = "njutic-request-sign"; public boolean verifySignature(String data, long timestamp, String signature) { // 验证请求签名 String expectedSignature = generateSignature(data, timestamp); return signature.equals(expectedSignature); } } ``` ### 数据库设计 用户表示例: ```sql CREATE TABLE users ( id BIGINT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(50) UNIQUE NOT NULL, password VARCHAR(255) NOT NULL, -- 存储加密后的密码 email VARCHAR(100), role VARCHAR(20) DEFAULT 'user', status TINYINT DEFAULT 1, -- 1: 启用, 0: 禁用 created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ); ``` ## 安全建议 1. **生产环境配置** - 修改默认的加密密钥 - 使用环境变量管理敏感配置 - 启用 HTTPS 传输 2. **密码策略** - 实施强密码策略 - 定期要求用户更换密码 - 限制登录失败次数 3. **Token 安全** - 设置合理的 token 过期时间 - 实现 token 刷新机制 - 支持用户主动登出 ## 开发计划 - [ ] 添加用户注册功能 - [ ] 实现忘记密码功能 - [ ] 集成多因素认证(2FA) - [ ] 添加用户管理界面 - [ ] 实现角色权限控制 - [ ] 添加操作日志记录 ## 贡献指南 1. Fork 项目 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 创建 Pull Request ## 许可证 本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。