61 lines
1.8 KiB
Bash
Executable File
61 lines
1.8 KiB
Bash
Executable File
#!/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 测试完成"
|