# Google OAuth: manuelle Restarbeiten Stand: 2026-05-15 ## 1. Google Cloud Console vorbereiten 1. In der Google Cloud Console das passende Projekt öffnen oder ein neues Projekt anlegen. 2. Unter `APIs & Services > OAuth consent screen` den Consent Screen konfigurieren. 3. App-Name, Support-E-Mail und Entwicklerkontakt eintragen. 4. Scopes reichen für diese App: - `profile` - `email` 5. Unter `APIs & Services > Credentials` einen OAuth-Client vom Typ `Web application` anlegen. 6. Als Authorized redirect URI eintragen: - Produktion: `https://stechuhr3.tsschulz.de/api/auth/google/callback` - Lokal, falls benötigt: `http://localhost:3010/api/auth/google/callback` 7. `Client ID` und `Client Secret` notieren. ## 2. Server-Environment setzen Auf dem Server in der produktiven Environment-Datei folgende Werte setzen: ```env GOOGLE_CLIENT_ID= GOOGLE_CLIENT_SECRET= GOOGLE_CALLBACK_URL=https://stechuhr3.tsschulz.de/api/auth/google/callback API_PUBLIC_URL=https://stechuhr3.tsschulz.de/api FRONTEND_URL=https://stechuhr3.tsschulz.de SESSION_SECRET= JWT_SECRET= ``` Wichtig: `GOOGLE_CALLBACK_URL` muss exakt mit der Redirect URI in der Google Console übereinstimmen. ## 3. Backend deployen und neu starten 1. Code auf den Server bringen. 2. Backend neu starten, z. B. über das vorhandene Deploy-Skript oder PM2. 3. Log prüfen. Erwartet: ```text ✅ Google OAuth konfiguriert ``` Wenn stattdessen `Google OAuth nicht konfiguriert` erscheint, fehlen `GOOGLE_CLIENT_ID` oder `GOOGLE_CLIENT_SECRET` im laufenden Prozess. ## 4. Web-Frontend deployen 1. Frontend neu bauen. 2. Neue `dist`-Dateien deployen. 3. Browser-Cache bei Bedarf leeren. ## 5. Android-App neu bauen/installieren 1. Debug/APK oder Release/AAB neu bauen. 2. App neu installieren. 3. Prüfen, dass Android den Deep Link `timeclock://oauth-callback` öffnet. ## 6. Testfälle 1. Google-Account ohne vorhandene TimeClock-E-Mail: - `Mit Google anmelden` - Erwartung: neuer Account wird erstellt und eingeloggt. 2. Google-Account bereits verknüpft: - `Mit Google anmelden` - Erwartung: direkter Login. 3. Google-Account mit E-Mail eines bestehenden Passwort-Accounts: - `Mit Google anmelden` - Erwartung: Verknüpfungsabfrage. - Bestehende E-Mail + Passwort eingeben. - Erwartung: Account wird verknüpft und eingeloggt. 4. Eingeloggt unter `Persönliche Daten`: - `Mit Google-Konto verknüpfen` - Erwartung: Google Flow startet, danach Rückkehr und Verknüpfung. 5. Danach ausloggen und erneut `Mit Google anmelden`. - Erwartung: direkter Login in denselben bestehenden Account. ## 7. Falls etwas fehlschlägt - Google meldet `redirect_uri_mismatch`: Redirect URI in Google Console und `GOOGLE_CALLBACK_URL` vergleichen. - Backend zeigt OAuth nicht konfiguriert: PM2/Deploy lädt die neuen Env-Werte nicht. Prozess mit aktualisierter Environment neu starten. - Android kehrt nicht in die App zurück: prüfen, ob der Browser auf `timeclock://oauth-callback?...` weiterleitet und die neu gebaute App installiert ist. - Verknüpfung schlägt fehl: prüfen, ob der alte Account wirklich ein Passwort hat. OAuth-only Accounts können sich nicht per Passwort bestätigen.