This library provides auto-renewed tokens for GCP service authentication.
Authentication flow | Status |
---|---|
API key | Not supported / No plans to support |
OAuth 2.0 client | Supported |
Environment-provided service account | Supported |
Service account key | Supported |
- Scope is
https://www.googleapis.com/auth/cloud-platform
- Looks for credentials in the following places, preferring the first location found:
- A JSON file whose path is specified by the
GOOGLE_APPLICATION_CREDENTIALS
environment variable. - A JSON file in a location known to the gcloud command-line tool.
- On Google Compute Engine, it fetches credentials from the metadata server.
- A JSON file whose path is specified by the
// simple:
// gouth = { version = "x.x.x" }
let token = gouth::Token::new().unwrap();
println!("authorization: {}", token.header_value().unwrap());
// with tonic:
// gouth = { path = "x.x.x", features = ["tonic-intercept"] }
let mut service = PublisherClient::with_interceptor(channel, gouth::tonic::interceptor());
service.list_topics(...);
scope:
use gouth::Builder;
let token = Builder::new()
.scopes(&["https://www.googleapis.com/auth/bigquery"])
.build()
.unwrap();
println!("authorization: {}", token.header_value().unwrap());
json:
use gouth::Builder;
let token = Builder::new().json("credentials-data").build().unwrap();
println!("authorization: {}", token.header_value().unwrap());
file:
use gouth::Builder;
let token = Builder::new().file("credentials-path").build().unwrap();
println!("authorization: {}", token.header_value().unwrap());
Licensed under MIT license.