2017-08-24 1 views
1

Ich erhalte diesen Fehler. "Die aktuelle Umgebung unterstützt den angegebenen Persistenztyp nicht." Ich habe meine App getestet und festgestellt, dass ein angemeldeter Benutzer überall angemeldet ist. Ich versuche also, Sitzungen auf node.js express mit Hilfe von Firebase zu implementieren, in der Hoffnung, dass dies die Lösung bringt. Mein Code ist dies:Die aktuelle Umgebung unterstützt den angegebenen Persistenztyp Firebase nicht

router.post("/login", function (req, res) { 
email = req.body.email; 
password = req.body.password; 

firebase.auth().setPersistence(firebase.auth.Auth.Persistence.SESSION); 
firebase.auth().signInWithEmailAndPassword(email, password).then(function() { 
    var user = firebase.auth().currentUser; 
    firebase.auth().onAuthStateChanged(function (user) { 
     if (user) { 

      res.redirect("/home"); 
     } 
    }); 
});}); 

Antwort

1

Nur none Persistenz in einer node.js Umgebung unterstützt (es ist die Standardeinstellung). Der Grund dafür ist, dass wenn sich die Firebase Auth-Client-Bibliothek in einer Serverumgebung befindet, sich mehrere Benutzer anmelden können und Sie nicht den Begriff eines aktuellen Benutzers auf dem Backend-Server haben (dies würde einen Benutzer dazu veranlassen) verprügele den anderen). Die Sitzungspersistenz kann nur auf dem Client geändert werden.

+0

Danke für die Antwort. Was sollte ich verwenden, um Benutzer einzeln zu authentifizieren? – ihnamdar

+0

Die API wurde für die Authentifizierung des Benutzers auf der Clientseite optimiert. In diesem Fall senden Sie das ID-Token immer an Ihren Server und überprüfen es mit dem Admin-SDK, bevor eingeschränkte Ressourcen bereitgestellt werden. Sie könnten es auch an Ihr Backend senden, aber Sie werden mehrere Benutzer haben, die diesen Flow durchlaufen. In diesem Fall wird von Ihnen erwartet, dass Sie die Sitzung verwalten. Die Benutzersitzung wird nicht jede Stunde eigenständig aktualisiert. – bojeil

Verwandte Themen