68 lines
2.4 KiB
Bash
68 lines
2.4 KiB
Bash
|
|
#!/bin/bash
|
|||
|
|
# 检查 8037 平台是否可访问,以及登录接口是否可用
|
|||
|
|
# 用法: bash scripts/check_platform_login.sh
|
|||
|
|
# 或指定账号: PLATFORM_USERNAME=你的账号 PLATFORM_PASSWORD=你的密码 bash scripts/check_platform_login.sh
|
|||
|
|
|
|||
|
|
BASE_URL="${PLATFORM_BASE_URL:-http://101.43.95.130:8037}"
|
|||
|
|
USER="${PLATFORM_USERNAME:-admin}"
|
|||
|
|
PASS="${PLATFORM_PASSWORD:-123456}"
|
|||
|
|
|
|||
|
|
echo "=== 1. 检查 8037 是否可访问 ==="
|
|||
|
|
echo "GET $BASE_URL"
|
|||
|
|
if curl -s -o /dev/null -w "%{http_code}" --connect-timeout 5 "$BASE_URL" | grep -qE '^[23]'; then
|
|||
|
|
echo " 可访问"
|
|||
|
|
else
|
|||
|
|
echo " 无法访问或超时,请检查 8037 服务是否启动、防火墙/安全组是否放行"
|
|||
|
|
exit 1
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
echo ""
|
|||
|
|
echo "=== 2. 尝试登录(先 form,再 JSON) ==="
|
|||
|
|
|
|||
|
|
# 先试 form(8037 可能只接受 form)
|
|||
|
|
echo "2a. POST form: username=$USER, password=***"
|
|||
|
|
RESP=$(curl -s -w "\n%{http_code}" -X POST "$BASE_URL/api/v1/auth/login" \
|
|||
|
|
-H "Content-Type: application/x-www-form-urlencoded" \
|
|||
|
|
-d "username=$USER&password=$PASS" \
|
|||
|
|
--connect-timeout 10)
|
|||
|
|
HTTP_BODY=$(echo "$RESP" | head -n -1)
|
|||
|
|
HTTP_CODE=$(echo "$RESP" | tail -n 1)
|
|||
|
|
|
|||
|
|
if [ "$HTTP_CODE" != "200" ] && [ "$HTTP_CODE" != "201" ]; then
|
|||
|
|
echo " form 状态: $HTTP_CODE, 响应: $HTTP_BODY"
|
|||
|
|
echo "2b. POST JSON: {\"username\":\"$USER\",\"password\":\"***\"}"
|
|||
|
|
RESP=$(curl -s -w "\n%{http_code}" -X POST "$BASE_URL/api/v1/auth/login" \
|
|||
|
|
-H "Content-Type: application/json" \
|
|||
|
|
-d "{\"username\":\"$USER\",\"password\":\"$PASS\"}" \
|
|||
|
|
--connect-timeout 10)
|
|||
|
|
HTTP_BODY=$(echo "$RESP" | head -n -1)
|
|||
|
|
HTTP_CODE=$(echo "$RESP" | tail -n 1)
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
if [ "$HTTP_CODE" = "200" ] || [ "$HTTP_CODE" = "201" ]; then
|
|||
|
|
echo " 状态: $HTTP_CODE 成功"
|
|||
|
|
if echo "$HTTP_BODY" | grep -q "access_token"; then
|
|||
|
|
echo " 响应含 access_token,登录正常"
|
|||
|
|
else
|
|||
|
|
echo " 响应无 access_token,内容: $HTTP_BODY"
|
|||
|
|
fi
|
|||
|
|
elif [ "$HTTP_CODE" = "401" ]; then
|
|||
|
|
echo " 状态: 401 未授权"
|
|||
|
|
echo " 响应: $HTTP_BODY"
|
|||
|
|
echo " -> 请确认 8037 上账号 $USER 的密码是否正确"
|
|||
|
|
exit 1
|
|||
|
|
elif [ "$HTTP_CODE" = "422" ]; then
|
|||
|
|
echo " 状态: 422 参数错误"
|
|||
|
|
echo " 响应: $HTTP_BODY"
|
|||
|
|
echo " -> 8037 可能要求 form 或不同字段名,已尝试 form 与 JSON"
|
|||
|
|
exit 1
|
|||
|
|
else
|
|||
|
|
echo " 状态: $HTTP_CODE"
|
|||
|
|
echo " 响应: $HTTP_BODY"
|
|||
|
|
exit 1
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
echo ""
|
|||
|
|
echo "=== 3. 若上面都成功,SAARS 后端应能正常代理知你客服 ==="
|
|||
|
|
echo " 重启后端: cd saars && docker compose restart backend"
|