Я нашел способ передать токен доступа, исходящий из запроса, в клиент Google API Go. Вот как я создаю клиента (r - входящий http.Request
):
ctx := context.Background()
auth := r.Header.Get("Authorization")
token := strings.TrimPrefix(auth, "Bearer ")
ts := oauth2.StaticTokenSource(
&oauth2.Token{AccessToken: token},
)
c := oauth2.NewClient(ctx, ts)
dnsService, err := dns.New(c)
Но, подумав немного, я не думаю, что это хороший подход в моем случае: токен доступа неоправданно силен, чтобы передать запрашивающей стороне. Поэтому я выбрал первый подход в своем первоначальном вопросе.