Files
Church-Music/legacy-site/documentation/md-files/MOBILE_LOGIN_QUICK_FIX.md

5.3 KiB

🔧 Quick Mobile Login Fix - Steps to Follow

Immediate Actions (Do This First!)

1. Access the Debug Page on Your Mobile Device

http://your-server-ip:3000/mobile-login-debug.html

Replace your-server-ip with your actual server address.

2. Run All Tests

  • Tap "Run System Tests"
  • Tap "Test Storage Capabilities"
  • Tap "Test Crypto Library"
  • Note which tests FAIL

3. Common Fixes Based on Test Results

If "sessionStorage failed"

Problem: You're in Private/Incognito mode Fix: Exit private browsing and use normal mode

If "CryptoJS is not loaded"

Problem: Library didn't load Fix:

  1. Refresh the page (pull down on mobile)
  2. Clear browser cache
  3. Check internet connection

If all tests pass but login still fails

Problem: Might be form submission issue Fix: Try these in order:

  1. Close mobile keyboard before tapping "Login"
  2. Don't use keyboard "Go/Enter" - tap the Login button
  3. Try landscape orientation
  4. Try a different mobile browser

Rebuild Frontend with Fixes

The code has been updated with better mobile detection. Rebuild:

cd /media/pts/Website/Church_HOP_MusicData/frontend
npm run build

Then restart your services:

sudo systemctl restart church-music-frontend
# or your restart command

Check Browser Console on Mobile

For Android Chrome

  1. Connect phone to computer via USB
  2. On computer, open Chrome and go to: chrome://inspect
  3. Find your device and click "inspect"
  4. Look at Console tab for errors

For iOS Safari

  1. Enable Web Inspector: Settings > Safari > Advanced
  2. Connect iPhone to Mac
  3. Open Safari on Mac > Develop > [Your iPhone] > Select page
  4. Check Console for errors

What the Code Changes Do

1. Early Warning System

When the login page loads, it now automatically checks:

  • Is CryptoJS library loaded?
  • Is localStorage working?
  • Is sessionStorage working?

If any fail, you'll see an orange warning banner at the top of the login form.

2. Better Error Messages

Instead of generic "Login failed", you now see:

  • "Encryption library not loaded. Please refresh the page."
  • "Storage error: Please ensure cookies/storage is enabled"
  • Specific browser console logs for debugging

3. Storage Verification

After setting session data, the code now verifies it was actually saved:

sessionStorage.setItem("authenticated", "true");
// New: Verify it worked
const verifyAuth = sessionStorage.getItem("authenticated");
if (verifyAuth !== "true") {
  throw new Error("sessionStorage failed to save");
}

Test on Desktop First

Before testing on mobile, verify on desktop:

  1. Open in Chrome
  2. Press F12 (Developer Tools)
  3. Press Ctrl+Shift+M (Mobile Device Toggle)
  4. Select an iPhone or Android device
  5. Try logging in
  6. Check Console tab for any errors

Manual Test Steps on Mobile

  1. Clear Everything First:

    • Access debug page
    • Tap "Clear localStorage & sessionStorage"
    • Confirm
  2. Run System Checks:

    • Tap each test button
    • Screenshot any failures
  3. Test Login:

    • Username: hop
    • Password: hop@2026ilovejesus
    • Watch for warning banners
  4. Check Session:

    • After login attempt, go back to debug page
    • Tap "Show Stored Credentials"
    • Look for "Currently authenticated"

Default Credentials Reminder

  • Username: hop
  • Password: hop@2026ilovejesus

Files Modified

  1. frontend/src/App.js

    • Added useEffect hook to check system capabilities on mount
    • Added systemWarning state
    • Enhanced handleLogin with better error handling
    • Added console.log debugging statements
    • Verifies sessionStorage operations succeed
  2. frontend/public/mobile-login-debug.html

    • Complete diagnostic tool
    • Tests all system capabilities
    • Shows exact failure points
  3. MOBILE_LOGIN_FIX.md

    • Full troubleshooting guide
    • Explanations of each issue

Next Steps Priority Order

  1. Access debug page on mobile - This is most important!
  2. Run all tests - Identify the exact problem
  3. Try suggested fix - Based on test results
  4. Rebuild if needed - If you want latest code changes
  5. Test again - Verify it works

Most Likely Causes (In Order)

  1. Private/Incognito Mode (70% of cases)

    • Solution: Use normal browsing mode
  2. Browser Storage Disabled (20% of cases)

    • Solution: Enable cookies/storage in browser settings
  3. Slow Network / Library Loading (8% of cases)

    • Solution: Wait for full page load, refresh if needed
  4. Mobile Keyboard Interference (2% of cases)

    • Solution: Close keyboard before tapping Login button

Quick Command Reference

Rebuild Frontend

cd /media/pts/Website/Church_HOP_MusicData/frontend
npm run build

Restart Services

sudo systemctl restart church-music-frontend
sudo systemctl restart church-music-backend

Check Service Status

sudo systemctl status church-music-frontend

View Logs

sudo journalctl -u church-music-frontend -f

Need Help?

Share the following info:

  1. Debug page test results (screenshot)
  2. Mobile device & browser (e.g., "iPhone 13, Safari 17")
  3. Any warning banners that appear
  4. Console errors (if you can access them)

Created: December 16, 2025
Status: Ready to test