2017-08-24 28 views
1

我收到此错误。 “当前环境不支持指定的持久性类型。”我正在测试我的应用程序,并看到当用户登录时,它已经到处登录。所以我正在尝试使用firebase实现node.js express上的会话,希望这能够解决它。我的代码是这样的:当前环境不支持指定的持久性类型firebase

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"); 
     } 
    }); 
});}); 

回答

1

只有none持久性在Node.js的环境(这是默认设置)的支持。原因是因为当在服务器环境中使用Firebase Auth客户端库时,可能有多个用户登录,并且您没有在后端服务器上保留currentUser的概念(这会导致一个用户打破另一个)。会话持久性只能在客户端上修改。

+0

感谢您的回答。那么,我应该如何分别验证用户身份? – ihnamdar

+0

API经过优化,可在客户端对用户进行身份验证。在这种情况下,您始终将ID令牌发送到服务器,并在提供受限资源之前使用管理员SDK对其进行验证。您也可以将它发送到您的后端,但最终会让多个用户通过该流程。在这种情况下,您需要管理会话。用户会话不会每小时刷新一次。 – bojeil