cyberhybridhub/scripts/check-firebase-auth-domains.sh
2026-06-04 19:31:04 +00:00

56 lines
1.8 KiB
Bash
Executable File

#!/usr/bin/env bash
# Print Firebase Auth authorized domains and verify production hostnames.
set -euo pipefail
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
API_KEY="${FIREBASE_WEB_API_KEY:-AIzaSyDbYBh6nO-UasqwM-dkVVJAvw5wMhRTsIs}"
# Hostnames the app uses (no scheme, no port).
REQUIRED_DOMAINS=(
cyberhybridhub.com
)
OPTIONAL_DOMAINS=(
www.cyberhybridhub.com
)
echo "Fetching authorized domains for project cyberhybridhub..."
JSON="$(curl -s "https://www.googleapis.com/identitytoolkit/v3/relyingparty/getProjectConfig?key=${API_KEY}")"
echo "$JSON" | python3 -m json.tool
DOMAINS="$(echo "$JSON" | python3 -c "import json,sys; d=json.load(sys.stdin); print('\n'.join(d.get('authorizedDomains',[])))")"
echo ""
echo "=== Check ==="
MISSING=0
for domain in "${REQUIRED_DOMAINS[@]}"; do
if echo "$DOMAINS" | grep -Fxq "$domain"; then
echo "OK $domain"
else
echo "FAIL $domain (required — Google sign-in will not work on https://$domain)"
MISSING=1
fi
done
for domain in "${OPTIONAL_DOMAINS[@]}"; do
if echo "$DOMAINS" | grep -Fxq "$domain"; then
echo "OK $domain"
else
echo "WARN $domain (optional; add if users visit https://$domain)"
fi
done
if [ "$MISSING" -ne 0 ]; then
echo ""
echo "Fix (pick one):"
echo " 1. Firebase Console → project cyberhybridhub → Authentication → Settings"
echo " → Authorized domains → Add domain → cyberhybridhub.com (no https://)"
echo " 2. After editing firebase.json redirect URIs:"
echo " firebase login && firebase deploy --only auth --project cyberhybridhub"
echo " 3. Run: ./scripts/add-firebase-auth-domain.sh cyberhybridhub.com"
echo " (needs gcloud auth with Firebase Admin permissions)"
exit 1
fi
echo ""
echo "All required domains are authorized."