2014-11-20 3 views
0

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

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

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

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

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

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

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

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

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

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

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

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

ответ

0

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