Я реализую сервер node.js, используя express.js для REST и Firebase для хранения данных.
Я читал Использование NodeJs с Firebase-Security, и его можно было реализовать таким образом, но в моем случае мне нужно отправить данные на сервер, а сервер должен возвращает адрес перенаправления, поэтому использование firebase в качестве канала связи немного сложнее.
В настоящее время я проверяю идентификацию клиентов на сервере, отправив токен Firebase auth в качестве параметра запроса и проверяя авторизацию с помощью метода firebase auth().
dataRef.auth(CLIENT_TOKEN, function(error) {
if(error) {
console.log("Login Failed!", error);
} else {
console.log("Login Succeeded!");
}
});
Проблема в том, что на сервере мне также нужны привилегии "admin" firebase. Для этого мне нужно снова аутентифицироваться, используя firebase auth(), используя токен администратора. (сгенерированный генератором токенов)
var FirebaseTokenGenerator = require("firebase-token-generator");
var tokenGenerator = new FirebaseTokenGenerator(YOUR_FIREBASE_SECRET);
var token = tokenGenerator.createToken({some: "arbitrary", data: "here"});
Я заметил, что существует ограничение в методе auth():
Обратите внимание, что все ссылки на Firebase имеют одинаковый статус аутентификации. Поэтому, если вы дважды вызываете новую Firebase() и вызываете auth() на одном из них, они оба будут аутентифицированы.
Есть ли способ реализовать это без двойного вызова auth()?
Или есть ли лучшие решения для этого?