- 改进错误处理,提供更友好的中文验证错误消息 - 使用 bcrypt 进行安全的密码哈希和验证 - 实现完整的用户登录功能(POST /api/auth/login) - 添加 JWT token 生成和验证机制 - 增强 API 测试脚本,包含验证错误和登录测试 - 支持用户名唯一性检查和重复注册防护 - 完善错误响应格式,包含状态码和详细错误信息
86 lines
2.4 KiB
Bash
Executable File
86 lines
2.4 KiB
Bash
Executable File
#!/bin/bash
|
||
|
||
echo "🧪 测试 Rust User API"
|
||
echo "===================="
|
||
|
||
# 测试根路径
|
||
echo "📍 测试根路径 (GET /):"
|
||
curl -s http://127.0.0.1:3000/ | jq '.' || echo "JSON 解析失败,原始响应:"
|
||
|
||
echo -e "\n"
|
||
|
||
# 测试健康检查
|
||
echo "❤️ 测试健康检查 (GET /health):"
|
||
curl -s http://127.0.0.1:3000/health | jq '.' || echo "JSON 解析失败,原始响应:"
|
||
|
||
echo -e "\n"
|
||
|
||
# 测试用户列表(应该返回空数组)
|
||
echo "👥 测试用户列表 (GET /api/users):"
|
||
curl -s http://127.0.0.1:3000/api/users | jq '.' || echo "JSON 解析失败,原始响应:"
|
||
|
||
echo -e "\n"
|
||
|
||
# 测试验证错误
|
||
echo "🚫 测试验证错误 (POST /api/users):"
|
||
curl -s -X POST http://127.0.0.1:3000/api/users \
|
||
-H "Content-Type: application/json" \
|
||
-d '{
|
||
"username": "ab",
|
||
"email": "invalid-email",
|
||
"password": "123"
|
||
}' | jq '.' || echo "JSON 解析失败,原始响应:"
|
||
|
||
echo -e "\n"
|
||
|
||
# 测试创建用户
|
||
echo "➕ 测试创建用户 (POST /api/users):"
|
||
curl -s -X POST http://127.0.0.1:3000/api/users \
|
||
-H "Content-Type: application/json" \
|
||
-d '{
|
||
"username": "testuser",
|
||
"email": "test@example.com",
|
||
"password": "password123"
|
||
}' | jq '.' || echo "JSON 解析失败,原始响应:"
|
||
|
||
echo -e "\n"
|
||
|
||
# 测试重复用户名
|
||
echo "🔄 测试重复用户名 (POST /api/users):"
|
||
curl -s -X POST http://127.0.0.1:3000/api/users \
|
||
-H "Content-Type: application/json" \
|
||
-d '{
|
||
"username": "testuser",
|
||
"email": "test2@example.com",
|
||
"password": "password123"
|
||
}' | jq '.' || echo "JSON 解析失败,原始响应:"
|
||
|
||
echo -e "\n"
|
||
|
||
# 再次测试用户列表(应该有一个用户)
|
||
echo "👥 再次测试用户列表 (GET /api/users):"
|
||
curl -s http://127.0.0.1:3000/api/users | jq '.' || echo "JSON 解析失败,原始响应:"
|
||
|
||
echo -e "\n"
|
||
|
||
# 测试用户登录
|
||
echo "🔐 测试用户登录 (POST /api/auth/login):"
|
||
curl -s -X POST http://127.0.0.1:3000/api/auth/login \
|
||
-H "Content-Type: application/json" \
|
||
-d '{
|
||
"username": "testuser",
|
||
"password": "password123"
|
||
}' | jq '.' || echo "JSON 解析失败,原始响应:"
|
||
|
||
echo -e "\n"
|
||
|
||
# 测试错误的登录凭据
|
||
echo "❌ 测试错误登录凭据 (POST /api/auth/login):"
|
||
curl -s -X POST http://127.0.0.1:3000/api/auth/login \
|
||
-H "Content-Type: application/json" \
|
||
-d '{
|
||
"username": "testuser",
|
||
"password": "wrongpassword"
|
||
}' | jq '.' || echo "JSON 解析失败,原始响应:"
|
||
|
||
echo -e "\n✅ API 测试完成" |