登录问题排查指南.md 4.4 KB

登录问题排查指南

🔍 问题诊断步骤

步骤1: 检查后端服务是否运行

方法1: 检查端口占用

netstat -ano | findstr :8001

如果看到类似输出,说明端口被占用:

TCP    0.0.0.0:8001           0.0.0.0:0              LISTENING       33764

方法2: 检查进程

tasklist | findstr 33764

如果是 java.exe,说明后端服务正在运行。

方法3: 浏览器测试

在浏览器中访问:

http://localhost:8001/api/admin/login

如果看到以下情况,说明后端服务正在运行:

  • 返回JSON错误(如405 Method Not Allowed)- 这是正常的,因为这是GET请求,而登录接口需要POST
  • 页面空白或连接失败 - 说明后端服务未启动

步骤2: 检查前端配置

  1. 检查API地址配置

    • 文件:book/book-admin/src/main/resources/static/utils/api.js
    • 应该设置为:const BASE_URL = 'http://localhost:8001'
  2. 检查前端服务端口

    • 文件:book/book-admin/package.json
    • 应该设置为:-p 8002(不能与后端端口8001冲突)

步骤3: 使用测试页面诊断

  1. 启动前端服务:

    cd book/book-admin
    npm run dev
    
  2. 访问测试页面:

    http://localhost:8002/pages/test-backend.html
    
  3. 点击测试按钮,查看详细错误信息

🔧 常见问题及解决方案

问题1: 后端服务未启动

症状: 浏览器显示"无法连接到后端服务"

解决方案:

  1. 打开IDE(如IntelliJ IDEA)
  2. 找到 BookApplication.java 文件
  3. 右键点击,选择"Run 'BookApplication.main()'"
  4. 等待启动完成,看到类似日志:

    Tomcat started on port(s): 8001 (http)
    

问题2: 端口冲突

症状: 启动后端服务时提示端口被占用

解决方案:

  1. 查找占用端口的进程:

    netstat -ano | findstr :8001
    
  2. 结束进程(如果不是后端服务):

    taskkill /PID <进程ID> /F
    
  3. 或者修改后端端口(不推荐)

问题3: CORS跨域问题

症状: 浏览器控制台显示CORS错误

解决方案:

  1. 检查 AdminWebConfig.java 中的CORS配置
  2. 确保包含以下配置:

    @Override
    public void addCorsMappings(CorsRegistry registry) {
       registry.addMapping("/api/**")
               .allowedOrigins("*")
               .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
               .allowedHeaders("*")
               .allowCredentials(false)
               .maxAge(3600);
    }
    
  3. 重启后端服务

问题4: 数据库连接失败

症状: 后端启动失败,提示数据库连接错误

解决方案:

  1. 检查MySQL服务是否启动
  2. 检查 application.properties 中的数据库配置:

    spring.datasource.url=jdbc:mysql://localhost:3306/books_db?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
    spring.datasource.username=root
    spring.datasource.password=root
    
  3. 确保数据库 books_db 存在

  4. 确保用户名和密码正确

问题5: 管理员账号不存在

症状: 登录时提示"用户名或密码错误"

解决方案:

  1. 检查数据库中是否有管理员账号
  2. 管理员账号要求:
    • username: admin
    • password: admin123(MD5加密后的值:0192023a7b
    • role: admin
    • status: 1(启用)
  3. 如果不存在,需要创建管理员账号

✅ 完整启动流程

1. 启动MySQL数据库

确保MySQL服务正在运行

2. 启动后端服务

cd book
mvn spring-boot:run

或者在IDE中运行 BookApplication.java

3. 启动前端服务

cd book/book-admin
npm run dev

4. 访问登录页面

http://localhost:8002/pages/login.html

5. 使用管理员账号登录

  • 用户名:admin
  • 密码:admin123

🧪 测试连接

使用测试页面进行完整测试:

http://localhost:8002/pages/test-backend.html

点击所有测试按钮,查看详细结果。

📞 如果还是无法解决

请提供以下信息:

  1. 后端服务启动日志(完整日志)
  2. 浏览器控制台的错误信息(F12 -> Console)
  3. 网络请求详情(F12 -> Network -> 点击登录请求 -> 查看Response)
  4. 测试页面的测试结果