Работа с oauth2 в golang
За работу с методом авторизации oauth2 в golang отвечает пакет golang.org/x/oauth2
.
Создание объекта Config
Прежде всего нам необходимо создать объект конфигурации Oauth:
В пакете golang.org/x/oauth2/endpoints
можно найти эндопойнты для популярных сервисов.
Получение URL для авторизации
У этого объекта можно запросить сформированный URL по которому пользователь должен пройти чтобы выдать права на API:
Обработка callback’а
В handler’е который будет обрабатывать http://localhost:8000/callback
необходимо обменять код авторизации на токен:
Получение HTTP клиента
Полученный токен можно передать в метод Client исходного объекта
так как объект токен содержит в себе и refresh token то его обновление пройдет автоматически. Этот клиент будет автоматически подставлять нужные headers в заголовки запросов.