Как google-api-js-client (gapi) восстанавливает состояние входа в систему между сеансами и обновляет

Очень приятно, что gapi API может удерживать пользователя в системе, но я хотел бы понять, как он это делает.

В документах для разработчиков указано, что

Затем, если пользователь уже вошел в систему, объект GoogleAuth восстанавливает состояние входа пользователя из предыдущего сеанса.

Единственный известный мне способ сделать это — использовать токен обновления, который небезопасен, если хранится на клиенте.

Как это достигается с помощью gapi-api?

Я бы сослался на исходники, но не не думаю они открыты.


person maxmil    schedule 26.09.2020    source источник


Ответы (1)


он вызывает конечную точку OAuth с prompt=none в скрытом iframe. Вы правы в том, что библиотеки имеют закрытый исходный код, и это отличная причина их не использовать. Написать собственную реализацию OAuth несложно.

person pinoyyid    schedule 26.09.2020
comment
Я понимаю. Я перепутал срок действия токена со сроком действия сеанса. Теперь я вижу, что продолжительность сеанса по умолчанию для служб Google составляет 14 дней. Я думаю, вы можете использовать prompt=none без необходимости повторной аутентификации пользователя в это время. - person maxmil; 27.09.2020