Intereting Posts

Аутентификация API Google API для сервера

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

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

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

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

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

Обычная процедура для OAuth такова:

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

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

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

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

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

В первый раз не может быть установлен шаг авторизации вручную.