Я разрабатываю надстройку Gmail, в которой в качестве логина используется авторизация службы, отличной от Google. После успешного входа в систему пользователь получает токен JWT, который сохраняется в «PropertiesService.userProperties».
Теперь я хочу добавить в дополнение возможность выхода из системы, которая снова будет вызывать внешний (не Google) API для выхода. Я хочу, чтобы все сеансы и токены авторизованного пользователя были уничтожены, и пользователь должен быть перенесен на карту авторизации, а затем ему / ей необходимо выполнить авторизацию еще раз.
Я уже пытался уничтожить все «PropertiesService.userProperties», но это не сработало. Также проверил «Сессию классов» скрипта Google Apps, что тоже не помогло.
Схема выглядит примерно так:
Шаг 1: Запуск contextualTrigger, который пытается загрузить следующую функцию -
function buildAddOn(e) {
var accessToken = e.messageMetadata.accessToken;
GmailApp.setCurrentMessageAccessToken(accessToken);
checkAuth();
var card = CardService.newCardBuilder()
.setHeader(CardService.newCardHeader().setTitle('Addon Demo'))
.addSection(CardService.newCardSection()
.addWidget(CardService.newTextParagraph().setText('Hello World')))
.build();
return [card];
}
Шаг 2: В приведенной выше функции он вызывает функцию checkAuth (), которая проверяет авторизацию пользователя и, если пользователь не авторизован, переводит пользователя на карту авторизации. Код для checkAuth () выглядит примерно так: -
function checkAuth() {
var service = getService()
if (service.hasAccess()) return
CardService.newAuthorizationException()
.setAuthorizationUrl(service.getAuthorizationUrl())
.setResourceDisplayName("Display name to show to the user")
.setCustomUiCallback('create3PAuthorizationUi')
.throwException()
}
have already tried to destroy all the 'PropertiesService.userProperties' but it didn't work.
Почему? - person TheMaster   schedule 05.09.2019PropertiesService.getUserProperties().deleteProperty('Credentials'); if(!PropertiesService.getUserProperties().getProperty('Credentials')){ //call a function to end the session and ask the user to log in again }
- person ziganotschka   schedule 05.09.2019service.reset()
? - person TheMaster   schedule 06.09.2019