Доступ из формулы GSuite Spreadsheets к токену Firebase SDK ID - PullRequest
1 голос
/ 09 марта 2019

Мне непонятно, как следует реализовывать проверку подлинности с помощью firebase в формуле GSuite.

Предположим, я разрабатываю формулу GSuite, которая должна работать со сторонним бэкэндом, запрашивающим данные и отображающим данные в таблицах Google.,Сторонний сервер требует токен Firebase ID как часть аутентификации Bearer .

Я знаю, как получить токен ID с помощью Firebase Authentication SDK во всплывающем окне HTML или на боковой панели.Я знаю, что токен ID истекает каждый час или около того и автоматически обновляется Firebase SDK .Проблема заключается в том, что при выполнении формулы у нее не может быть доступа к Firebase SDK (я ошибаюсь?), И поэтому он может использовать токен с истекшим сроком действия, который хранится где-то в пользовательском кэше.Более того, если электронная таблица открыта и пытается обновить данные, несмотря на то, что пользователь все еще находится в Firebase, формула не может выполнить вызов

firebase.auth().currentUser.getIdToken(/* forceRefresh */ true).then(function(idToken) {
  // Send token to your backend via HTTPS
  // ...
}).catch(function(error) {
  // Handle error
});

Каков "канонический" способ решения этой проблемы?

TL; DR Как было предложено Жан-Реми в принятом ответе на вопрос оЕсли нет возможности использовать предоставленные библиотеки, это использовать Firebase REST API напрямую.Существует API REST Firebase Auth и API REST доступа к БД Firebase , которые можно использовать.

1 Ответ

1 голос
/ 11 марта 2019

Вы не можете ожидать использования обычного «всплывающего потока» для аутентификации в скрипте Служб Google (потому что я предполагаю, что это означает «формулу GSuite»), потому что его выполнение выполняется на стороне сервера.

Вы можете использовать токен учетной записи службы для аутентификации в вашей БД или сгенерировать токен идентификатора, используя электронную почту пользователя, полученную с помощью AppsScript (если это работает в вашей формуле).

Посмотрите на наш коннектор для использования Firebase в AppsSript: https://www.npmjs.com/package/@scriptaddicts/gas-firebase-app

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