rust_google_oauth2
The library currently supports Google OAuth2 flow for installed desktop applications and has been initally tested with manual copy/paste (of authorization code) redirect method.
Going forward support for Loopback IP redirect is planned to be added.
Prerequisites
- Create your application in Google API Console
a. Credentials > Create credentials > OAuth client ID
b. Set application type to Other
c. Enter your application name
d. Download JSON configuration of newly created application
Example
[dependencies]
gauth = "0.3.1"
Sample client implementation
fn main() {
let handle_auth = |consent_url: String| -> Result<String, <Box std:error:Error>> {
println!("> open the link in browser\n\n{}\n", consent_url);
println!("> enter the auth. code\n");
let mut auth_code = String::new();
io::stdin().read_line(&mut auth_code)?;
Ok(auth_code)
}
let auth_client = gauth::Auth::new(
"my-new-application",
&[
"https://www.googleapis.com/auth/drive.readonly",
],
PathBuf::from("/my-google-credentials/oauth-credentials.json"),
);
let token = auth_client
.access_token(handle_auth)
.expect("failed to retrieve access token");
println!("obtained token: {:?}", token);
}
License
License under either or: