Google Calendars: метод отслеживания токенов обновления API

0

Я использую Google Calendar API для автономного доступа к пользовательским календарям.

Поэтому, когда пользователь сначала аутентифицирует приложение, мне предоставляется токен обновления.

При последующих обращениях токен обновления не указывается.

Поэтому, чтобы сохранить их, я сохраняю токен обновления для своей собственной таблицы пользователей базы данных. Поэтому я знаю, когда зарегистрирован конкретный пользователь сайта, что токен обновления Google обновлен до $ refresh

Это отлично работает, когда пользователь использует только 1 учетную запись Google, но если они аутентифицируют приложение через несколько учетных записей Google. Есть несколько токенов обновления, но на моей стороне базы данных я сохраняю только один.

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

Но даже это неверно. Когда вы предоставляете доступ к определенному календарю, я не буду знать, с чем связана учетная запись Google, с которой связан определенный календарь. (если я что-то не хватает)

Поэтому, когда они предоставляют доступ к календарю, все, что мне нужно, это то, что пользователь был подписан на моем сайте.

Поэтому, если кто-то предоставляет доступ, чтобы сказать 2 календаря, которые находятся в двух разных учетных записях Google, но оба связаны с одним пользователем веб-сайта. Как узнать, какой аккаунт Google использовался для какого календаря?

Не зная эту информацию, токен обновления будет терпеть неудачу, пока я не выберу нужный токен обновления. Который должен был бы быть задействован на велосипеде, хотя токены обновления пока не будут работать.

Есть ли способ сохранить что-то, что поможет мне узнать, какой токен обновления привязан к каждому календарю (а не привязывать его только к пользователю веб-сайта), который они аутентифицировали?

Или моя методология неверна в том, как я храню данные, и есть лучший способ сохранить эту информацию, которая имеет смысл.

Теги:
google-calendar
google-oauth

1 ответ

0

Ток обновления выполняется в автономных сценариях во время первого обмена кодами авторизации. Несмотря на то, что у пользователя несколько учетных записей, токен обновления создается для каждой учетной записи google (даже пользователи такие же). Кроме того, при сохранении токена обновления в токере обновления хранилища базы данных вместе с идентификатором пользователя (идентификатор учетной записи google) и идентификатором календаря (хотя оба идентификатора одинаковы, но в нескольких сценариях каждый пользователь может иметь несколько календарей).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню