Les utilisateurs s'authentifient côté client à l'aide du SDK Firebase.
Côté serveur, il y a nodejs et le sdk est également installé. Ce code serveur fonctionne car je peux utiliser la base de données :
var firebase = require("firebase/compat/app"); require("firebase/compat/database"); require("firebase/compat/auth"); const firebaseConfig = { apiKey: "Axxx4", authDomain: "movtxxxom", projectId: "moxxx2", storageBucket: "movxxom", messagingSenderId: "14xx9", appId: "1:1xxxea13c", measurementId: "GxxFL", databaseURL: "httpxxx/", }; // Initialize Firebase firebase.initializeApp(firebaseConfig);
Ce code fonctionne.
Il s'agit d'un itinéraire (rapide) où je souhaite obtenir des informations sur l'utilisateur :
fastify.get("/login-success", async (request, reply) => { // Return View const user = firebase.auth().currentUser; console.log(user); return reply.view("/templates/login-success.ejs", { text: "Log in success", }); });
Les variables utilisateur sont toujours vides.
Quelle est la bonne façon de gérer ce problème ?
Comment gérer cette situation de manière plus générale ?
aannabeengineer a raison. Il s'agit d'une preuve de concept (le code côté serveur doit être ajusté après l'authentification de l'utilisateur et la récupération des informations).
Serveur :
Front-end :
Oui, j'utilise maintenant Firebase admin côté serveur ("firebase" est l'instance sur le serveur).
Afin d'authentifier les utilisateurs côté serveur, vous devez générer le client JWT puis le valider sur le serveur. Tout d'abord, générez IdToken p> côté client
Ensuite, envoyez le jeton dans la requête au serveur. Vous pouvez utiliser l'authentification du porteur pour cela (envoyée sous forme d'en-tête HTTP. Autorisation : porteur)
Sur le serveur, vous pouvez utiliser n'importe quelle bibliothèque JWT pour valider le jeton. Si vous souhaitez utiliser le SDK Firebase, vous devez utiliser le SDK correct. "firebase/compat/auth" est destiné aux clients. Vous avez besoin du SDK de gestion Firebase, Le lien suivant explique comment utiliser le SDK du jeton d'identification de validation d'administrateur Firebase