#!/bin/bash echo "🔍 测试登录后的 Session" echo "=======================" echo "" BASE_URL="http://localhost:3000" # 1. 注册用户 TIMESTAMP=$(date +%s) TEST_EMAIL="session-test-$TIMESTAMP@example.com" echo "1️⃣ 注册用户: $TEST_EMAIL" REGISTER_RESPONSE=$(curl -s -X POST "$BASE_URL/api/auth/register" \ -H "Content-Type: application/json" \ -d "{\"email\":\"$TEST_EMAIL\",\"password\":\"password123\",\"name\":\"Session测试\"}") echo "注册响应: $REGISTER_RESPONSE" echo "" # 2. 获取 CSRF token echo "2️⃣ 获取 CSRF token..." CSRF_RESPONSE=$(curl -s -c cookies.txt -b cookies.txt "$BASE_URL/api/auth/csrf") CSRF_TOKEN=$(echo $CSRF_RESPONSE | grep -o '"csrfToken":"[^"]*"' | cut -d'"' -f4) echo "CSRF Token: $CSRF_TOKEN" echo "" # 3. 登录并保存 cookies echo "3️⃣ 登录..." LOGIN_RESPONSE=$(curl -s -c cookies.txt -b cookies.txt -X POST "$BASE_URL/api/auth/callback/credentials" \ -H "Content-Type: application/json" \ -d "{\"email\":\"$TEST_EMAIL\",\"password\":\"password123\",\"csrfToken\":\"$CSRF_TOKEN\",\"callbackUrl\":\"$BASE_URL\",\"json\":true}") echo "登录响应: $LOGIN_RESPONSE" echo "" # 4. 查看保存的 cookies echo "4️⃣ 保存的 Cookies:" cat cookies.txt echo "" # 5. 使用 cookies 访问受保护的 API echo "5️⃣ 使用 session 访问家族树 API..." TREES_RESPONSE=$(curl -s -b cookies.txt "$BASE_URL/api/trees") echo "家族树响应: $TREES_RESPONSE" echo "" # 6. 尝试创建家族树 echo "6️⃣ 尝试创建家族树..." CREATE_TREE_RESPONSE=$(curl -s -b cookies.txt -X POST "$BASE_URL/api/trees" \ -H "Content-Type: application/json" \ -d '{"name":"Session测试家族树","description":"测试session是否工作"}') echo "创建家族树响应: $CREATE_TREE_RESPONSE" echo "" # 清理 rm -f cookies.txt echo "✅ Session 测试完成"