Я последовал примеру библиотеки GAS OAuth2 . Но я хочу добиться следующего.
- Запрос UserA к GAS для authorizationUrl через запрос get / post Https (
doGet()
или doPost()
) с параметром userID - GAS возвращает authorizationUrl и сохраняет свою переменную
state
в Google Sheet с идентификатором пользователя UserA - UserA авторизуется с использованием этого authorizationUrl
- GAS проверяет переменную
state
из функции authCallback()
и проверяет ее с помощью старой сохраненной переменной state
из таблицы Google. Если это так, то сохраните UserA's Access Token с идентификатором пользователя в том же листе Google
Примерно так:
function authCallback(request) {
var service = getService();
var authorized = service.handleCallback(request);
var state = request.parameter.state;
if (authorized) {
if(state == getOldState(userID)){
storeToken(userID, service.getAccessToken());
}
return HtmlService.createHtmlOutput('<h1>Success!</h1>');
} else {
return HtmlService.createHtmlOutput('Denied.');
}
}
Теперь UserA может модифицировать свой диск с помощью запроса Https для GAS и GAS. Диск UserA с сохраненным
токеном доступа Запрос UserB на авторизациюUrl GAS также возвращает authorizationUrl для пользователя B, и он также может получить доступ к газу. GAS также сохраняет маркер доступа UserB со своим userID. Теперь GAS может управлять дисками UserA и UserB с помощью их идентификатора пользователя и уже сохраненных
токенов доступа. Возможно ли это? Я знаю, что токен доступа истекает через некоторое время. Пожалуйста, помогите мне завершить мой хобби проект