@Valid、@NotBlank等)POST /api/user/login@CrossOrigin(origins = "*")books/utils/api.jsbooks/utils/config.jsbooks/pages/login/login.vuemanifest.json 中 urlCheck: false根据 insert_data.sql,测试账号如下:
| 用户名 | 密码 | 昵称 | VIP状态 | 状态 |
|---|---|---|---|---|
zhangsan |
123456 |
张三 | 否 | 启用 |
lisi |
123456 |
李四 | 是 | 启用 |
wangwu |
123456 |
王五 | 否 | 启用 |
密码说明:
e10adc3949ba59abbe56e057f20f883e123456执行SQL脚本(如果还没有执行):
# 方法1:使用MySQL命令行
mysql -u root -p books_db < src/main/resources/db/insert_data.sql
# 方法2:直接在MySQL工具中执行
# 打开 src/main/resources/db/insert_data.sql 文件并执行
或者手动插入测试数据:
USE books_db;
INSERT INTO `users` (`username`, `nickname`, `avatar`, `phone`, `email`, `password`, `is_vip`, `vip_expire_time`, `status`) VALUES
('zhangsan', '张三', 'https://picsum.photos/seed/avatar1/100/100', '13800138001', 'zhangsan@example.com', 'e10adc3949ba59abbe56e057f20f883e', 0, NULL, 1),
('lisi', '李四', 'https://picsum.photos/seed/avatar2/100/100', '13800138002', 'lisi@example.com', 'e10adc3949ba59abbe56e057f20f883e', 1, '2025-12-31 23:59:59', 1),
('wangwu', '王五', 'https://picsum.photos/seed/avatar3/100/100', '13800138003', 'wangwu@example.com', 'e10adc3949ba59abbe56e057f20f883e', 0, NULL, 1);
# 进入后端项目目录
cd book
# 清理并重新编译(重要!)
mvn clean compile
# 启动服务
mvn spring-boot:run
验证后端启动成功:
查看控制台日志,应该看到:
Started BookApplication in X.XXX seconds
访问:http://localhost:8081(应该返回404或错误页面,说明服务已启动)
编辑 books/utils/config.js:
// 开发环境(微信开发者工具)
return 'http://localhost:8081/api'
// 真机调试(需要改为你的IP地址)
// return 'http://192.168.1.100:8081/api'
获取本机IP地址:
ipconfig 查找 IPv4 地址ifconfig 查找 inet 地址books 项目pages/login/login.vue)zhangsan123456/pages/index/index)在微信开发者工具的 "调试器" -> "Storage" 中可以看到:
userInfo:包含用户详细信息isLogin:true请求:
POST http://localhost:8081/api/user/login
Content-Type: application/json
{
"username": "zhangsan",
"password": "123456"
}
成功响应:
{
"code": 200,
"message": "登录成功",
"data": {
"user": {
"id": 1,
"username": "zhangsan",
"nickname": "张三",
"avatar": "https://picsum.photos/seed/avatar1/100/100",
"phone": "13800138001",
"email": "zhangsan@example.com",
"isVip": false,
"status": 1
},
"token": "mock_token_1"
}
}
失败响应:
{
"code": 400,
"message": "用户名或密码错误",
"data": null
}
错误信息:
HV000030: No validator could be found for constraint 'javax.validation.constraints.NotBlank'
解决方法:
必须重新编译后端:
cd book
mvn clean compile
mvn spring-boot:run
如果还有问题,检查是否有缓存:
book/target 目录可能原因:
解决方法:
检查后端服务是否运行:
# 检查端口是否被占用
netstat -ano | findstr 8081
检查 books/utils/config.js 中的端口是否正确
检查后端 application.properties 中的端口配置
可能原因:
解决方法:
检查数据库是否有测试用户:
SELECT * FROM users WHERE username = 'zhangsan';
确认密码是 123456(MD5加密后:e10adc3949ba59abbe56e057f20f883e)
已解决:
@CrossOrigin(origins = "*")解决方法:
localhosthttp://你的IP:8081在微信开发者工具中:
在后端控制台查看:
使用Postman或curl测试:
curl -X POST http://localhost:8081/api/user/login \
-H "Content-Type: application/json" \
-d '{"username":"zhangsan","password":"123456"}'
-- 检查用户是否存在
SELECT * FROM users WHERE username = 'zhangsan';
-- 检查密码是否正确(MD5值)
SELECT username, password FROM users WHERE username = 'zhangsan';
-- 应该返回:e10adc3949ba59abbe56e057f20f883e
在测试前,请确认:
http://localhost:8081可访问)books/utils/config.js)mvn clean compile)启动后端:
cd book
mvn clean compile
mvn spring-boot:run
打开前端:
books 项目测试登录:
zhangsan123456验证结果:
book/src/main/java/com/yu/book/controller/UserController.javabook/src/main/java/com/yu/book/service/UserService.javabook/src/main/java/com/yu/book/dto/LoginDTO.javabook/src/main/resources/application.propertiesbook/src/main/resources/db/insert_data.sqlbooks/pages/login/login.vuebooks/utils/api.jsbooks/utils/config.jsbooks/manifest.json现在可以开始测试登录功能了!