This library contains helpers to create OAuth2 access tokens. This may be useful when trying to access customer services deployed to Cloud Run, or when using Google APIs that lack a client library in google-cloud-cpp.
Quickstart
The following shows the code that you'll run in the google/cloud/oauth2/quickstart/ directory. This is the typical usage of the library in applications.
#include "google/cloud/oauth2/access_token_generator.h"
#include <iostream>
int main(int argc, char* argv[]) try {
if (argc != 1) {
std::cerr << "Usage: " << argv[0] << "\n";
return 1;
}
// Use Application Default Credentials to initialize an AccessTokenGenerator
// retrieve the access token.
auto credentials = google::cloud::MakeGoogleDefaultCredentials();
auto generator =
google::cloud::oauth2::MakeAccessTokenGenerator(*credentials);
auto token = generator->GetToken();
if (!token) throw std::move(token).status();
// Only print the first few characters to avoid leaking tokens in test logs.
std::cout << "The access token starts with " << token->token.substr(0, 16)
<< "\n";
return 0;
} catch (google::cloud::Status const& status) {
std::cerr << "google::cloud::Status thrown: " << status << "\n";
return 1;
}
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-03-05 UTC."],[[["This webpage details the OAuth2 Access Token Generation library, which facilitates the creation of OAuth2 access tokens for accessing services like Cloud Run or Google APIs."],["The latest release candidate for this library is version 2.37.0-rc, with a range of previous versions accessible from 2.36.0 down to 2.16.0 listed, as well as version 2.28.0."],["The library utilizes `AccessTokenGenerator` and `MakeAccessTokenGenerator()` as its main interfaces to generate tokens, typically initialized with Application Default Credentials."],["The documentation includes a Quickstart section with a code example demonstrating how to use the library to retrieve an access token using `google::cloud::MakeGoogleDefaultCredentials`."],["Additional resources are available for error handling and understanding Google's authentication methods, providing comprehensive support for library users."]]],[]]