Files
AIOA/scripts/verify-local-auth.sh
2026-07-18 19:20:07 +08:00

48 lines
1.6 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
keycloak_url="${KEYCLOAK_URL:-http://localhost:8081}"
backend_url="${BACKEND_URL:-http://localhost:8080}"
curl --fail --silent --show-error "${backend_url}/actuator/health" | jq .
for username in employee manager admin hr; do
case "${username}" in
employee) password='Employee123!' ;;
manager) password='Manager123!' ;;
admin) password='Admin123!' ;;
hr) password='HrReviewer123!' ;;
esac
token="$({
curl --fail --silent --show-error \
-X POST "${keycloak_url}/realms/aioa/protocol/openid-connect/token" \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode client_id=aioa-mobile \
--data-urlencode grant_type=password \
--data-urlencode username="${username}" \
--data-urlencode password="${password}"
} | jq -r .access_token)"
case "${username}" in
employee) device_id='10000000-0000-4000-8000-000000000001' ;;
manager) device_id='10000000-0000-4000-8000-000000000002' ;;
admin) device_id='10000000-0000-4000-8000-000000000003' ;;
hr) device_id='10000000-0000-4000-8000-000000000004' ;;
esac
curl --fail --silent --show-error \
-X POST "${backend_url}/api/v1/devices/register" \
-H "Authorization: Bearer ${token}" \
-H 'Content-Type: application/json' \
--data "{\"id\":\"${device_id}\",\"name\":\"Local auth verifier (${username})\",\"platform\":\"OTHER\",\"appVersion\":\"script\"}" \
>/dev/null
printf '%s\n' "${username}"
curl --fail --silent --show-error \
"${backend_url}/api/v1/me" \
-H "Authorization: Bearer ${token}" \
-H "X-AIOA-Device-Id: ${device_id}" | jq .
done