Проверьте, вошел ли пользователь в Firebase Auth из Node.js (облачные функции) - PullRequest
0 голосов
/ 07 мая 2019

Я пытаюсь создать динамическую веб-страницу Express на Node.js.Я хочу выполнить следующую логику на сервере (Firebase Cloud Functions) по пути /:

  • Если клиент вошел в систему (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-запроса или есть другие способы визуализации правильного содержимого?

1 Ответ

0 голосов
/ 07 мая 2019

В облачных функциях, запускаемых по протоколу HTTPS, нет встроенного способа узнать, поступил ли запрос от пользователя, вошедшего в систему. Если вы хотите это определить, вам нужно будет передать маркер идентификатора пользователя. вместе с запросом, а также декодировать и проверить этот токен в облачной функции. Для простого примера этого см. Аутентифицированный JSON API в репозитории function-samples.

...