Я храню токен доступа и обновляю токен sh на сервере. Как я могу молча обновить токен доступа на веб-интерфейсе? Я легко могу сделать это на бэкэнде, но не смог найти примеров для клиентской стороны. Ищем метод гэппи. gapi.auth2.authorize не может быть использован.
PS Да, я знаю, что gapi делает это «автоматически». Но не в нашем случае. Сейчас мы используем SSO на стороне сервера. Сейчас я пытаюсь использовать gapi для одной небольшой функции.
Спасибо
Редактировать Текущий код:
gapi.load('client:auth2', () => {
gapi.client.init({
clientId: FRONTEND_ENV_VAR.GOOGLE_CLIENT_ID,
discoveryDocs: ['https://sheets.googleapis.com/$discovery/rest?version=v4'],
scope: 'profile https://www.googleapis.com/auth/spreadsheets'
}).then(() => {
gapi.client.setToken({
access_token: <ACCESS_TOKEN from backend>,
refresh_token: <REFRESH_TOKEN from backend>,
});
gapi.auth2.getAuthInstance().isSignedIn.listen(<function to update token on the backend>);
gapi.client.sheets.spreadsheets.create({
properties: {
title: this.getReportTitle()
}
}).then((response) => {
<do something>;
}, (error) => {
**HERE I'M CHECKING FOR ERRORS**
if ('UNAUTHENTICATED' === error.result.error.status) {
**WHAT DO I DO HERE?????**
}
});
}).catch(error => {
console.error('Error: ', error);
});
});