Получите токен id в надстройке Gmail для проверки подлинности бэкэнда - PullRequest
0 голосов
/ 18 сентября 2018

Фон
Я использую скрипт 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?

1 Ответ

0 голосов
/ 14 декабря 2018

Вы должны активировать oAuth, https://developers.google.com/apps-script/concepts/scopes

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