在Node.js(云函数)中,检查用户是否已登录Firebase Auth

14 浏览
0 Comments

在Node.js(云函数)中,检查用户是否已登录Firebase Auth

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

  • 如果客户端已登录(Firebase Auth),则渲染主页my_home_page.html
  • 如果客户端未登录,则渲染登录页面my_login_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请求中检查客户端的登录状态,或者是否有其他方法来渲染正确的内容?

0
0 Comments

问题:如何从Node.js中的Firebase Auth检查用户是否已登录(Cloud Functions)?

原因:在HTTPS触发的Cloud Functions中没有内置的方法可以知道请求是否来自已登录的用户。如果要确定这一点,您需要将用户的ID令牌与请求一起传递,并在Cloud Function中解码和验证该令牌。

解决方法:可以参考function-samples仓库中的Authenticated JSON API示例。

0