web-dev-qa-db-fra.com

Authentification NodeJS avec Firebase

Je souhaite authentifier et conserver des sessions via NodeJS avec Firebase. Le client ne peut pas communiquer directement avec Firebase.

En bref:

Client (navigateur) <----> NodeJs (firebase-admin) <----> Firebase

J'ai créé le client Firebase dans NodeJS, puis j'ai utilisé la méthode de connexion:

var firebaseClient = require('firebase');
firebaseClient.initializeApp(config)
firebaseClient.auth().signInWithEmailAndPassword(req.body.email, req.body.password).catch(function(error){
    console.log(error);
})

puis j'ai créé route pour vérifier l'utilisateur authentifié:

app.get('/check',function(req,res){
    var user = firebaseClient.auth().currentUser
    console.log(user)
})

Cette méthode me permet seulement de garder 1 utilisateur précédemment connecté.

J'aimerais utiliser firebase-admin, mais je ne sais pas comment garder la session et authentifier les utilisateurs

25
Karol Bilicki

Vous pouvez authentifier les clients sur leurs périphériques/navigateurs respectifs à l'aide du SDK client et leur demander d'envoyer un jeton d'ID à un service backend écrit à l'aide de firebase-admin (le SDK admin). Le kit SDK d'administration fournit des méthodes pour valider les jetons d'ID envoyés par les clients: https://firebase.google.com/docs/auth/admin/verify-id-tokens

16