Как вручную обновить sh токен доступа Google OAuth с помощью gapi? - PullRequest
0 голосов
/ 06 января 2020

Я храню токен доступа и обновляю токен 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);
    });
});
...