feat(auth): connexion avec un compte Google (find-or-create, import likes/abos inclus)

- Backend: GET /api/auth/google/{url,callback} (state login distinct du
  link import), echange code, profil userinfo, find-or-create (OAuth sub,
  puis email), session + cookies comme login interne, connexion stockee
  dans oauth_connections pour l'import direct
- Front: bouton 'Se connecter avec Google' sur /auth/login (visible si
  configure), page /auth/google/callback (initSession + prefs + redirect
  /library/import), cles i18n nav.import deja en place
- Comptes Google-only: password_hash aleatoire (login mot de passe impossible)
This commit is contained in:
2026-09-26 21:02:12 -04:00
parent ecb4295a59
commit 783003822d
9 changed files with 252 additions and 2 deletions
+5
View File
@@ -109,6 +109,11 @@ export const APP_ROUTES: Routes = [
loadComponent: () => import('./components/auth/register/register.component').then(m => m.RegisterComponent),
title: 'NewTube - Register'
},
{
path: 'auth/google/callback',
loadComponent: () => import('./components/auth/google-callback/google-callback.component').then(m => m.GoogleCallbackComponent),
title: 'NewTube - Google login'
},
{
path: 'info/utilisation',
loadComponent: () => import('./components/info/utilisation/utilisation.component').then(m => m.UtilisationComponent),