WS-6: Google-Login via Laravel Socialite
- Socialite installiert; oauth_provider/oauth_provider_id an users (Migration). - GoogleController (redirect/callback) + SocialAuthService: De-Dup über E-Mail, neuer User aktiv + verifiziert + customer (Verifizierung über den Google- Kanal), offener Selbst-Registrierer wird onboardet, deaktivierter Account wird NICHT reaktiviert. Abschluss über die gemeinsame LoginRedirect-Logik (rollengerecht, 403-sicher). - Routen /auth/google/redirect + /auth/google/callback (guest), "Mit Google anmelden/registrieren"-Buttons auf Login und Register. - config/services.php google + .env.example-Keys; Sicherheits-/Deployment-Doku ergänzt (Keys, Redirect-URI, Migration). Tests: neuer User, De-Dup bestehender User, deaktivierter Account blockiert, unverifizierter Registrierer onboardet, fehlgeschlagener Callback. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
ae79d5bee4
commit
068a5a4b49
13 changed files with 715 additions and 1 deletions
|
|
@ -94,10 +94,25 @@ Aus einer gezielten Auth-Prüfung umgesetzt:
|
|||
|
||||
---
|
||||
|
||||
## 6c. Google-Login (Socialite, WS-6)
|
||||
|
||||
`/auth/google/redirect` → Google, `/auth/google/callback` → `GoogleController`. Auflösung in `App\Services\Auth\SocialAuthService`:
|
||||
- **De-Dup über E-Mail:** bestehende E-Mail wird wiederverwendet (keine Dubletten), nur `oauth_provider`/`oauth_provider_id` werden verknüpft.
|
||||
- **Neuer User:** aktiv + verifiziert + `customer` (Verifizierung gilt über den Google-Kanal als erfüllt).
|
||||
- **Offener Selbst-Registrierer (unverifiziert):** wird über Google onboardet (verifiziert + aktiv + customer).
|
||||
- **Deaktivierter, verifizierter Account:** wird **nicht** reaktiviert → Login blockiert.
|
||||
- Abschluss über dieselbe `LoginRedirect`-Logik (rollengerecht, 403-sicher).
|
||||
|
||||
**Deployment-Voraussetzungen:**
|
||||
- `composer install` (neue Abhängigkeit `laravel/socialite`).
|
||||
- Migration `add_oauth_provider_columns_to_users` (siehe unten).
|
||||
- ENV: `GOOGLE_CLIENT_ID`, `GOOGLE_CLIENT_SECRET`, `GOOGLE_REDIRECT_URI`. Die Redirect-URI muss in der Google Cloud Console exakt der Callback-URL entsprechen (`https://<domain>/auth/google/callback`).
|
||||
|
||||
## 7. Deployment-Reihenfolge (Migrationen dieser Phase)
|
||||
|
||||
1. `2026_06_15_101337_backfill_email_verified_at_for_existing_users` — verhindert Lockout.
|
||||
2. `2026_06_16_080913_downgrade_legacy_editor_users_to_customer` — schließt die Admin-Überberechtigung.
|
||||
3. `2026_06_16_103238_add_oauth_provider_columns_to_users` — Provider-Verknüpfung für Google-Login.
|
||||
|
||||
**Nach Deploy prüfen:**
|
||||
- `editor`-Rolle hat keine Legacy-User mehr.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue