如何在firebase管理SDK中获取currentUser。在客户端SDK中我们可以使用
onAuthStateChanged() or firebase.auth().currentUser()
在NodeJs Server.js
文件中,firebase管理员SDK onAuthStateChanged()不起作用,这里有什么用?
基本上我只希望登录用户访问我的innerPages,所以我使用express,nodejs app.get 方法来创建路径。
app.get('/', authenticationRequired ,function(req,res){
res.sendFile(path.join(__dirname+'/index.html'));
});
尝试编写 authenticationRequired 方法(根据用户是否登录,返回false或true)。
答案 0 :(得分:11)
Firebase Admin SDK本身并不知道哪些用户正在使用您的Express网络应用。您需要为此实现代码。如果您已在网络应用中使用Firebase身份验证,则需要执行以下步骤:
Retrieve the user's ID token on the client
您可以使用firebase.auth().currentUser.getToken()
方法获取用户的ID令牌。
将此令牌从客户端传递到服务器
Verify the token on the server
可以使用admin.auth().verifyIdToken(idToken)
方法验证用户ID令牌。成功后,它将返回decodedToken
的承诺,否则将返回被拒绝的承诺。