Как проверить, аутентифицирован ли пользователь в Firebase и Express / Node.js? - PullRequest
0 голосов
/ 01 июня 2018

Если у меня есть страница, доступ к которой имеют только аутентифицированные пользователи, как я могу проверить, аутентифицирован ли пользователь или нет?

Я попытался использовать (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");
   }
});

1 Ответ

0 голосов
/ 01 июня 2018

Ваш код находится в приложении Express, что означает, что он работает на сервере.Используемый вами Firebase SDK предназначен для использования на клиентских устройствах и не очень хорошо работает в среде Express.На сервере нет понятия «текущий пользователь».Конечно, идентификатор пользователя может передаваться на сервер при каждом запросе, но сам сервер не имеет состояния.

На вашем сервере Express вы захотите использовать Firebase Admin SDK.Посмотрите на этот пример Cloud Functions, как создать аутентифицированную конечную точку .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...