4.1 KiB
4.1 KiB
API连接测试指南
本指南将帮助您测试前端是否能够成功读取后端数据,以及验证登录和注册功能的实现状态。
登录和注册功能实现状态
根据代码分析,登录和注册功能已经实现并连接到了真实的后端API。系统采用了以下实现方式:
登录功能
- 支持使用用户名或邮箱登录
- 集成了NextAuth.js进行身份验证管理
- 在测试环境中提供测试账号(用户名:
test, 密码:test) - 非测试账号会调用真实的后端API进行认证:
https://code.littlelan.cn/CarrotSkin/APIgateway/api/v1/auth/login - 包含验证码验证机制(非测试账号需要)
注册功能
- 完整的表单验证逻辑(用户名、密码、邮箱、Minecraft用户名不能为空)
- 密码强度检查(至少6位)
- 邮箱格式验证
- 验证码验证
- 调用真实的后端注册API:
https://code.littlelan.cn/CarrotSkin/APIgateway/api/v1/auth/register
如何测试后端数据连接
方法一:使用API测试页面
- 访问
http://localhost:3000/api-tester打开API测试工具(已修复) - 点击"开始API测试"按钮
- 查看测试结果,了解各个API端点的连接状态
方法二:使用简化API测试页面
- 访问
http://localhost:3000/simple-api-test打开简化的API测试工具 - 选择要测试的API端点
- 输入必要的参数(如用户ID、角色ID等)
- 点击"测试API"按钮查看返回结果
方法三:使用浏览器控制台进行测试
打开浏览器开发者工具(F12),切换到控制台(Console)选项卡,执行以下代码:
// 测试材质列表API(无需登录)
fetch('/api/textures')
.then(response => response.json())
.then(data => console.log('材质列表数据:', data))
.catch(error => console.error('获取材质列表失败:', error));
// 如果已登录,可以测试需要认证的API
// 测试用户角色列表
fetch('/api/user-profiles?userId=1', { credentials: 'include' })
.then(response => response.json())
.then(data => console.log('用户角色列表数据:', data))
.catch(error => console.error('获取用户角色列表失败:', error));
测试登录功能
测试测试账号登录
- 访问
http://localhost:3000/login登录页面 - 输入用户名:
test,密码:test - 点击登录按钮
- 成功后会自动跳转到用户主页
http://localhost:3000/user-home
测试注册功能
- 访问
http://localhost:3000/register注册页面 - 填写完整的注册信息:
- 用户名:自定义
- 密码:至少6位
- 邮箱:有效的邮箱地址
- Minecraft用户名:自定义
- 点击获取验证码,输入收到的验证码
- 点击注册按钮
- 成功后会提示注册成功并自动跳转到登录页面
常见问题排查
-
API请求失败
- 检查网络连接是否正常
- 确认后端服务器是否正在运行
- 查看浏览器控制台是否有错误信息
- 检查API端点URL是否正确
-
登录失败
- 确认用户名和密码是否正确
- 检查验证码是否输入正确
- 查看是否有网络错误提示
-
注册失败
- 确认所有必填项都已填写
- 检查密码是否满足长度要求
- 确认邮箱格式是否正确
- 检查用户名或邮箱是否已被注册
高级测试技巧
查看API请求详情
- 打开浏览器开发者工具(F12)
- 切换到网络(Network)选项卡
- 刷新页面或执行API操作
- 查看请求和响应详情,包括状态码、请求头、响应内容等
测试特定API端点
使用API测试页面,您可以测试以下主要端点:
- 材质列表:
/api/textures- 获取所有材质数据(无需登录) - 用户角色列表:
/api/user-profiles?userId={id}- 获取指定用户的角色列表(需要登录) - 角色详情:
/api/profile?profileId={id}- 获取指定角色的详细信息(需要登录) - 角色及属性:
/api/profile-props?profileId={id}- 获取指定角色及其属性(需要登录)
通过以上测试方法,您可以全面验证前端与后端的连接状态和数据读取能力。