Фон
Я использую скрипт Google Apps для создания дополнения Gmail.С помощью этого плагина я хотел бы подключиться к своему внутреннему серверу (не от Google), используя запрос службы REST.Запрос должен быть авторизован.После авторизации я мог бы затем отправлять запросы на этот сервер для получения данных, связанных с этим пользователем, в базе данных.Я уже использую вход в Google в своем веб-приложении для входа в бэкэнд-сервис - во внешнем интерфейсе я получаю id_token внутри объекта GoogleUser в ответе на авторизацию.
Проблема
Мне нужен этот id_token для входа в мой бэкэнд-сервис при подключении к нему через плагин Gmail.Однако я не смог найти способ доступа к токену.
Исследование
Я бы предположил, что токен должен быть доступен через API в скрипте приложений.
В веб-приложении я получаю id_token с помощью Google Auth API, напримерthis:
Promise.resolve(this.auth2.signIn())
.then((googleUser) => {
let user_token = googleUser.getAuthResponse().id_token; // this is the id_token I need in the Gmail plugin, too
// send the id_token to the backend service
...
};
В API скриптов Google Apps я мог только найти токен OAuth:
ScriptApp.getOAuthToken();
Я предполагал, что токен также может быть сохранен в сеансе.API скриптов Google Apps содержит класс Session, который сам содержит метод getActiveUser, который возвращает объект User.Однако объект User содержит только адрес электронной почты пользователя, без идентификатора токена (или чего-либо еще):
Session.getActiveUser().getEmail();
Вопрос (ы)
Есть ли способ получить токен id?
Я выбираю правильный подход для входа на внутренний сервер, используя данные вошедшего в систему пользователя Gmail?