Files
rust-user-api/test_api.sh
enoch 038b6e6140 feat: [阶段5-6] 完善请求验证、错误处理和JWT身份认证
- 改进错误处理,提供更友好的中文验证错误消息
- 使用 bcrypt 进行安全的密码哈希和验证
- 实现完整的用户登录功能(POST /api/auth/login)
- 添加 JWT token 生成和验证机制
- 增强 API 测试脚本,包含验证错误和登录测试
- 支持用户名唯一性检查和重复注册防护
- 完善错误响应格式,包含状态码和详细错误信息
2025-08-04 17:39:08 +08:00

86 lines
2.4 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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 测试完成"