#!/bin/bash # 认证功能测试脚本 # 用于测试emotion-auth模块的认证功能 BASE_URL="http://localhost:19000/api/auth" CONTENT_TYPE="Content-Type: application/json" echo "=========================================" echo "开始测试emotion-auth模块认证功能" echo "=========================================" # 1. 测试获取验证码 echo "1. 测试获取验证码..." CAPTCHA_RESPONSE=$(curl -s -X GET "${BASE_URL}/../captcha/generate") echo "验证码响应: $CAPTCHA_RESPONSE" # 提取验证码ID(假设返回JSON格式) CAPTCHA_ID=$(echo $CAPTCHA_RESPONSE | grep -o '"key":"[^"]*"' | cut -d'"' -f4) echo "验证码ID: $CAPTCHA_ID" # 2. 测试用户注册 echo -e "\n2. 测试用户注册..." REGISTER_DATA='{ "account": "testuser001", "password": "123456", "confirmPassword": "123456", "email": "test@example.com", "captcha": "1234", "captchaId": "'$CAPTCHA_ID'" }' REGISTER_RESPONSE=$(curl -s -X POST "${BASE_URL}/register" \ -H "$CONTENT_TYPE" \ -d "$REGISTER_DATA") echo "注册响应: $REGISTER_RESPONSE" # 3. 测试用户登录 echo -e "\n3. 测试用户登录..." LOGIN_DATA='{ "account": "testuser001", "password": "123456", "captcha": "1234", "captchaId": "'$CAPTCHA_ID'" }' LOGIN_RESPONSE=$(curl -s -X POST "${BASE_URL}/login" \ -H "$CONTENT_TYPE" \ -d "$LOGIN_DATA") echo "登录响应: $LOGIN_RESPONSE" # 提取访问Token ACCESS_TOKEN=$(echo $LOGIN_RESPONSE | grep -o '"accessToken":"[^"]*"' | cut -d'"' -f4) echo "访问Token: $ACCESS_TOKEN" # 4. 测试获取用户信息 if [ ! -z "$ACCESS_TOKEN" ]; then echo -e "\n4. 测试获取用户信息..." USER_INFO_RESPONSE=$(curl -s -X GET "${BASE_URL}/user-info" \ -H "$CONTENT_TYPE" \ -H "Authorization: Bearer $ACCESS_TOKEN") echo "用户信息响应: $USER_INFO_RESPONSE" fi # 5. 测试验证Token if [ ! -z "$ACCESS_TOKEN" ]; then echo -e "\n5. 测试验证Token..." VALIDATE_RESPONSE=$(curl -s -X GET "${BASE_URL}/validate-token" \ -H "$CONTENT_TYPE" \ -H "Authorization: Bearer $ACCESS_TOKEN") echo "Token验证响应: $VALIDATE_RESPONSE" fi # 6. 测试检查账号是否存在 echo -e "\n6. 测试检查账号是否存在..." CHECK_ACCOUNT_RESPONSE=$(curl -s -X GET "${BASE_URL}/check-account?account=testuser001") echo "检查账号响应: $CHECK_ACCOUNT_RESPONSE" # 7. 测试用户登出 if [ ! -z "$ACCESS_TOKEN" ]; then echo -e "\n7. 测试用户登出..." LOGOUT_RESPONSE=$(curl -s -X POST "${BASE_URL}/logout?userId=test-user-id" \ -H "$CONTENT_TYPE" \ -H "Authorization: Bearer $ACCESS_TOKEN") echo "登出响应: $LOGOUT_RESPONSE" fi echo -e "\n=========================================" echo "认证功能测试完成" echo "========================================="