Connexion et inscription avec Google

Check-list pour activer les boutons Google sur les pages /login et /register, sans exposer le secret côté navigateur (seul l’ID client est public).

Variable serveur : ID client Google renseigné

URL de référence de l’application (app.base-url) : https://www.mkf-solutions.fr
Profils Spring actifs : prod, saas

1. Google Cloud Console

  1. Ouvrez API et services → Identifiants (projet Google Cloud de votre organisation).
  2. Créez un identifiant de type ID client OAuth 2.0Application Web.
  3. Copiez l’ID client (forme xxxxx.apps.googleusercontent.com) : c’est la valeur à passer au serveur, pas le secret client (inutile pour le bouton GIS).

2. Origines JavaScript autorisées

Le navigateur n’enverra le jeton Google que si l’URL affichée dans la barre d’adresse correspond exactement à une origine déclarée (schéma + hôte + port). Pour chaque boutique en sous-domaine, ajoutez une ligne du type https://votre-boutique.votredomaine.fr.

Suggestions basées sur votre app.base-url et le développement local — cliquez pour copier :

Origine
https://www.mkf-solutions.fr
https://mkf-solutions.fr
http://localhost:8080
http://127.0.0.1:8080
https://localhost:8080
Multi-tenant : Google n’accepte pas les jokers du type *.domaine.fr pour ces origines. Listez chaque URL publique (site vitrine master, chaque sous-domaine boutique, préproduction, etc.).

3. URI de redirection (facultatif pour ce mode)

Avec le bouton Google en popup (configuration actuelle), vous n’avez en général pas besoin d’URI de redirection supplémentaires. Si la console exige un champ, vous pouvez indiquer par exemple https://www.mkf-solutions.fr/login.

4. Variable d’environnement sur le serveur

  1. Définissez GOOGLE_OAUTH_CLIENT_ID avec l’ID client (même valeur que dans la console).
  2. Redémarrez l’application. La propriété Spring app.google.oauth2.client-id lit cette variable.
  3. Vérifiez les pages publiques : les boutons « Continuer avec Google » / « S’inscrire avec Google » doivent apparaître.

5. Dépannage rapide

  1. Erreur « origine non autorisée » : l’URL exacte (y compris http vs https et le port) doit être ajoutée dans la console Google.
  2. Bouton absent : ID client vide côté serveur ou cache navigateur — contrôlez la variable d’environnement et rechargez en navigation privée.
  3. 403 après clic : compte existant non activé (e-mail classique) ou e-mail Google non vérifié — messages affichés côté API.
« Accès bloqué » / « ne respecte pas le règlement OAuth 2.0 » — ce n’est en général pas seulement les domaines de l’écran de consentement. Vérifier dans l’ordre :
  1. Deux endroits différents dans la console : les domaines autorisés (écran de consentement OAuth) servent au branding ; pour le bouton sur votre site, il faut surtout les Origines JavaScript autorisées sur l’ID client OAuth → Application Web (une ligne par origine exacte : https://www.exemple.fr et https://exemple.fr si les deux existent, plus chaque sous-domaine boutique).
  2. Écran de consentement OAuth (API et services → Écran de consentement OAuth) : nom de l’appli, e-mail d’assistance, coordonnées du développeur renseignés ; en production, une politique de confidentialité (URL publique) est souvent requise.
  3. Statut « Test » : tant que l’appli n’est pas publiée, seuls les comptes ajoutés comme utilisateurs test peuvent se connecter. Les autres voient un blocage type politique OAuth.
  4. Type d’identifiant : l’ID client utilisé dans GOOGLE_OAUTH_CLIENT_ID doit être celui d’une Application Web du même projet que l’écran de consentement.