diff --git a/app/login/page.tsx b/app/login/page.tsx index b8711df..daf87f2 100644 --- a/app/login/page.tsx +++ b/app/login/page.tsx @@ -26,13 +26,21 @@ export default function LoginPage() { if (result?.error) { setError("Invalid email or password") } else if (result?.ok) { + // Force a session refresh before redirect + // This ensures the session cookie is properly set and read + await fetch("/api/auth/session", { method: "GET" }) + // Check if there's a callback URL in the query params const params = new URLSearchParams(window.location.search) const callbackUrl = params.get("callbackUrl") || "/photos" console.log("Redirecting to:", callbackUrl) - // Use window.location.href to force a full page reload - // This ensures the session cookie is read before middleware checks authentication - window.location.href = callbackUrl + + // Small delay to ensure cookie is set + setTimeout(() => { + // Use window.location.href to force a full page reload + // This ensures the session cookie is read before middleware checks authentication + window.location.href = callbackUrl + }, 100) } else { setError("Login failed. Please try again.") } diff --git a/rebuild.sh b/rebuild.sh index f0e5e07..e2cb445 100755 --- a/rebuild.sh +++ b/rebuild.sh @@ -8,7 +8,10 @@ set -e # Get the directory where this script is located SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -cd "$SCRIPT_DIR" +cd "$SCRIPT_DIR" || { + echo "Error: Could not change to script directory: $SCRIPT_DIR" + exit 1 +} MODE=${1:-prod} @@ -71,13 +74,23 @@ else export NODE_ENV=production unset AUTH_TRUST_HOST npm run start > "$LOG_FILE" 2>&1 & - echo "Server PID: $!" + SERVER_PID=$! + echo "Server PID: $SERVER_PID" echo "Log file: $LOG_FILE" echo "" - sleep 3 - if curl -s -o /dev/null -w "%{http_code}" http://localhost:3000 | grep -q "200\|307"; then - echo "✓ Server is running on http://localhost:3000" - else - echo "⚠ Server may still be starting. Check logs: tail -f $LOG_FILE" - fi + + # Wait for server to start (check log file for "Ready" message or check HTTP) + echo "Waiting for server to start..." + for i in {1..30}; do + if curl -s -o /dev/null -w "%{http_code}" http://localhost:3000 2>/dev/null | grep -q "200\|307\|404"; then + echo "✓ Server is running on http://localhost:3000" + break + fi + if [ $i -eq 30 ]; then + echo "⚠ Server may still be starting. Check logs: tail -f $LOG_FILE" + echo " Or check if process is running: ps -p $SERVER_PID" + else + sleep 1 + fi + done fi diff --git a/watch-activity.sh b/watch-activity.sh index ef8f081..56798ab 100755 --- a/watch-activity.sh +++ b/watch-activity.sh @@ -23,10 +23,28 @@ if [ -n "$LOG_FILE" ]; then # Watch log file if [ ! -f "$LOG_FILE" ]; then echo "⚠ Warning: Log file '$LOG_FILE' does not exist yet." - echo " Waiting for it to be created..." + echo " Waiting for it to be created (will wait up to 30 seconds)..." echo "" + # Wait for file to be created + for i in {1..30}; do + if [ -f "$LOG_FILE" ]; then + echo "✓ Log file created" + break + fi + sleep 1 + done + if [ ! -f "$LOG_FILE" ]; then + echo "❌ Log file still doesn't exist after 30 seconds" + echo " Make sure the server is running: ./rebuild.sh prod" + exit 1 + fi fi - tail -f "$LOG_FILE" 2>/dev/null | grep -E "\[ACTIVITY\]|\[PHOTO_UPLOAD\]|\[GUESS_SUBMIT\]|Activity:|INFO.*Activity:" + tail -f "$LOG_FILE" 2>/dev/null | grep -E "\[ACTIVITY\]|\[PHOTO_UPLOAD\]|\[GUESS_SUBMIT\]|Activity:|INFO.*Activity:" || { + echo "⚠ No activity logs found. Make sure:" + echo " 1. Server is running" + echo " 2. LOG_LEVEL is set to INFO or DEBUG" + echo " 3. Users are actually using the site" + } elif systemctl is-active --quiet app-backend 2>/dev/null; then # Use systemd journal if service is active echo "Using systemd journal (app-backend service)"