2017-04-16 61 views
9

Chciałbym uwierzytelniać i utrzymywać sesje za pośrednictwem NodeJS z Firebase. Klient nie może bezpośrednio komunikować się z Firebase.Uwierzytelnianie NodeJS w Firebase

W skrócie:

klienta (przeglądarki) < ----> NodeJs (Firebase-admin) < ----> Firebase

stworzyłem Firebase klienta w NodeJS, a następnie użyłem metody logowania:

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

a potem stworzył drogę, by sprawdzić uwierzytelnionego użytkownika:

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

Ta metoda pozwala mi tylko zatrzymać 1 wcześniej zalogowanego użytkownika.

Chciałbym użyć Firebase-admin, ale nie wiem, jak zachować sesji i uwierzytelniania użytkowników

+0

Zajrzyj do "paszportu" jako sposobu zarządzania sesjami. Jestem pewien, że istnieje pakiet do zarządzania uwierzytelnianiem Firebase za pomocą już utworzonej bazy Firebase, takiej jak https://www.npmjs.com/package/passport-firebase-auth – BenShelton

+0

Użyłem ognia kątowego. Możesz bezpośrednio komunikować swojego klienta (przeglądarkę) z firebase. Nie znalazłem rozwiązania dla opisanego problemu. –

Odpowiedz

5

Można uwierzytelniania klientów na swoich urządzeniach/Przeglądarki pomocą SDK klienta, a im się je do wyślij token ID do usługi backendu napisanej przy użyciu firebase-admin (SDK administratora). Zestaw SDK administratora zapewnia metody sprawdzania poprawności tokenów identyfikacyjnych wysyłanych przez klientów: https://firebase.google.com/docs/auth/admin/verify-id-tokens