检查用户是否从Node.js(云功能)登录Firebase Auth

检查用户是否从Node.js(云功能)登录Firebase Auth,node.js,typescript,firebase,firebase-authentication,google-cloud-functions,Node.js,Typescript,Firebase,Firebase Authentication,Google Cloud Functions,我正在尝试在Node.js上创建一个快速动态网页。我想在服务器上执行以下逻辑(Firebase云功能),路径为/: 如果客户端已登录(Firebase Auth),则呈现主页my\u home\u page.html 如果客户端未登录,则呈现登录页面my\u login\u page.html 因此,我需要实现isClientLoggedIn函数: import * as functions from 'firebase-functions'; import * as express fro

我正在尝试在Node.js上创建一个快速动态网页。我想在服务器上执行以下逻辑(Firebase云功能),路径为
/

  • 如果客户端已登录(Firebase Auth),则呈现主页
    my\u home\u page.html
  • 如果客户端未登录,则呈现登录页面
    my\u login\u page.html
因此,我需要实现
isClientLoggedIn
函数:

import * as functions from 'firebase-functions';
import * as express from 'express';

const app = express();

export const redirects = functions.https.onRequest(app);

app.set('views', './res');
app.engine('html', require('ejs').renderFile);
app.set('view engine', 'html');

function isClientLoggedIn(request: Request): bool {
    return // ???
}
app.get('/', (req, res) => {
    if (isClientLoggedIn(req)) {
        res.render('my_home_page.html');
    } else {
        res.render('my_login_page.html');
    }
});

但是,我检查了Firebase Auth文档,不知道如何实现此功能。是否可以通过HTTP请求检查客户端的登录状态,或者是否有其他方法来呈现正确的内容?

HTTPS触发的云函数中没有内置方法来了解请求是否来自已登录的用户。如果您希望能够确定这一点,则需要将用户的ID令牌与请求一起传递,并在云函数中解码和验证该令牌。关于这方面的一个简单示例,请参见
函数示例中的
repo.

然后网站在主页上使用的一些常见技术是什么,比如堆栈溢出?我无法告诉您堆栈溢出如何实现其用户身份验证,但它始终是我在回答中描述的一些变体。