如果我有一个只能由经过身份验证的用户访问的页面,我该如何检查用户是否经过身份验证?
我尝试使用(firebase.auth().currentUser !== null)
,但收到错误消息:TypeError: firebase.auth is not a function
我有以下配置:
const express = require('express'),
firebase = require('firebase'),
app = express();
app.use(express.static("/public"));
var config = {
apiKey: "xxxx",
authDomain: "xxxx",
databaseURL: "xxxx",
projectId: "xxxx",
storageBucket: "xxxx",
messagingSenderId: "xxxx"
};
firebase.initializeApp(config);
app.get("/dashboard", (request, response) => {
if (firebase.auth().currentUser !== null){
response.render("dashboard.ejs")
}
else{
response.render("login.ejs");
}
});
答案 0 :(得分:3)
您的代码位于Express应用中,这意味着它在服务器上运行。您正在使用的Firebase SDK旨在用于客户端设备,并且在您的Express环境中无法正常运行。没有"当前用户的概念"在服务器上。当然,每个请求都可以将用户ID传递给服务器,但服务器本身是无状态的。
在Express服务器中,您将要使用Firebase Admin SDK。看看这个Cloud Functions sample on how to build an authenticated endpoint。