Аутентификация Google API для сервера - PullRequest
5 голосов
/ 14 марта 2012

Я пытался заставить API Календаря Google работать в веб-приложении PHP, но мне трудно пройти аутентификацию.

Я хочу разрешить пользователям взаимодействовать с календарями одной учетной записи, известной серверу.

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

Есть ли какая-то часть OAuth или какой-то альтернативный механизм, который я могу использовать для этого?

Ответы [ 2 ]

3 голосов
/ 14 марта 2012

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

Обычная процедура для OAuth выглядит следующим образом:

  1. Отправить пользователя на страницу аутентификации.
  2. Пользователь возвращается с $ _GET ['code']
  3. Отправьте $ _GET ['code'] на сервер OAuth для получения токена
  4. Сохранение токена в базе данных для пользователя (или сеанса, если он очень недолговечен)

Но когда вы делаете это с одним таким календарем, вы изменяете шаг 4. Вместо этого вы выводите токен на экран и копируете его в файл PHP как переменные, а не помещаете его в базу данных. Затем, когда вы собираетесь передать токен доступа на сервер, вы просто передаете известный, статический токен, а не динамический токен из базы данных / сессии.

2 голосов
/ 25 августа 2012

См. Ответ mathewh здесь:

Как автоматизировать вход в Google API для получения токена OAuth 2.0 для доступа к известной учетной записи пользователя

Лампочка для меня - это когда выполучить токен доступа, вы также получите refresh_token ... вы используете этот токен для «обновления» вашего токена доступа после его истечения.

Невозможно обойти шаг ручной авторизации в первый раз.

...