Ceci est le projet client (frontend) de la plateforme web nommée ProjetR, conçue pour faciliter la gestion de portfolios, de projets, de cours et de ressources pour les étudiants et développeurs du Cégep de Rosemont. Il propose une authentification sécurisée via Google (Firebase), une interface moderne, et une intégration complète avec un backend Node.js/Express. L'objectif est de centraliser les outils de développement, de partage et de collaboration autour de projets informatiques.
Aperçu visuel de l'application :
Ce projet a été mis à jour pour utiliser l'authentification Firebase avec la connexion Google, remplaçant l'ancienne implémentation directe de l'API Google Identity.
Ajoutez les variables de configuration Firebase suivantes à votre fichier .env :
# Configuration de l'API
VITE_API_URL=http://localhost:5000/api/v1
# Configuration Firebase
VITE_FIREBASE_API_KEY=your_firebase_api_key
VITE_FIREBASE_AUTH_DOMAIN=your_project_id.firebaseapp.com
VITE_FIREBASE_PROJECT_ID=your_project_id
VITE_FIREBASE_STORAGE_BUCKET=your_project_id.appspot.com
VITE_FIREBASE_MESSAGING_SENDER_ID=your_messaging_sender_id
VITE_FIREBASE_APP_ID=your_app_id
VITE_FIREBASE_MEASUREMENT_ID=your_measurement_id
# Ancienne connexion Google (peut être supprimée après la migration Firebase)
VITE_GOOGLE_CLIENT_ID=your_legacy_google_client_id- Rendez-vous sur la console Firebase
- Cliquez sur « Créer un projet » ou « Ajouter un projet »
- Suivez l'assistant de configuration
- Dans votre projet Firebase, allez dans « Authentification » dans la barre latérale gauche
- Cliquez sur l'onglet « Méthode de connexion »
- Activez « Google » comme fournisseur de connexion
- Configurez l'écran de consentement OAuth si nécessaire
- Dans les paramètres de votre projet Firebase, cliquez sur « Ajouter une application » et sélectionnez « Web »
- Donnez un nom à votre application
- Copiez l'objet de configuration Firebase
- Ajoutez les valeurs de configuration à votre fichier
.env
- Dans la console Google Cloud de votre projet
- Allez dans « APIs & Services » > « Identifiants »
- Ajoutez
http://localhost:5173aux origines autorisées pour le développement - Ajoutez votre domaine de production lors du déploiement
Votre backend doit vérifier le jeton d'identité Firebase envoyé depuis le frontend :
// Exemple de vérification côté backend Node.js
const admin = require("firebase-admin");
// Initialiser le SDK Firebase Admin
admin.initializeApp({
credential: admin.credential.applicationDefault(),
// ou utilisez une clé de compte de service
});
// Vérifier le jeton d'identité
async function verifyIdToken(idToken) {
try {
const decodedToken = await admin.auth().verifyIdToken(idToken);
return decodedToken;
} catch (error) {
throw new Error("Jeton invalide");
}
}- Initialisation de l'application Firebase avec les variables d'environnement
- Configuration du fournisseur d'authentification Google
- Exportation de l'instance d'authentification et du provider
- Ajout du hook
useFirebaseGoogleLogin() - Maintien du hook existant
useGoogleLogin()pour la communication avec le backend - Importation des fonctions d'auth Firebase
- Remplacement du bouton Google Identity API par le bouton Firebase
- Ajout d'états de chargement et de gestion d'erreur appropriés
- Style cohérent avec un design de bouton personnalisé
- Ajout de la gestion de l'état d'authentification Firebase
- Fournit l'état utilisateur courant à travers l'application
- Gère la déconnexion
- Connexion Google via Firebase : Authentification par popup
- Design de bouton personnalisé : Boutons de connexion Google stylisés
- États de chargement : Retour visuel lors de l'authentification
- Gestion des erreurs : Messages d'erreur conviviaux
- Intégration backend : Envoi des jetons Firebase ID à votre API
- Gestion de l'état d'auth : Contexte React pour l'état d'authentification
- L'ancien code Google Identity API a été remplacé
- Les variables d'environnement sont correctement structurées
- Le SDK Firebase gère automatiquement le rafraîchissement des jetons
- L'état d'authentification persiste après un rafraîchissement de la page
- Configurez le projet Firebase avec le bon domaine
- Ajoutez le domaine de production aux origines OAuth autorisées
- Configurez les variables d'environnement sur votre plateforme d'hébergement
- Testez la connexion Google sur l'environnement de préproduction
- Mettez à jour le backend pour vérifier les jetons Firebase ID
- « Domaine d'auth non configuré » : Vérifiez
VITE_FIREBASE_AUTH_DOMAIN - « Origine non autorisée » : Ajoutez votre domaine dans les paramètres OAuth
- « Clé API invalide » : Vérifiez
VITE_FIREBASE_API_KEY - Erreurs backend : Assurez-vous que votre API peut vérifier les jetons Firebase ID
- Démarrez le serveur de développement :
npm run dev - Rendez-vous sur
/authentification - Cliquez sur « Continuer avec Google »
- Vérifiez la console du navigateur pour d'éventuelles erreurs
- Vérifiez que le jeton est bien envoyé à votre API backend
- Ajoutez votre configuration Firebase dans
.env - Testez le flux d'authentification
- Mettez à jour votre backend pour gérer les jetons Firebase ID
- Supprimez la variable
VITE_GOOGLE_CLIENT_IDune fois la migration confirmée





