gcpauth 0.1.2

Google Cloud Platform server application authentication library.
Documentation
use gcpauth::token::TokenSource;
use gcpauth::*;
use std::fs::File;
use std::io::Write;

#[tokio::test]
async fn test() -> Result<(), error::Error> {
    let authorized_user_credentials = std::env::var("TEST_USER_CREDENTIALS")
        .map_err(|_e| error::Error::StringError("env required".to_string()))?;

    let json = base64::decode(authorized_user_credentials)
        .map_err(|_e| error::Error::StringError("invalid cred".to_string()))?;
    let mut file = File::create(".cred.json").map_err(error::Error::IOError)?;
    file.write_all(json.as_slice())
        .map_err(error::Error::IOError)?;

    std::env::set_var("GOOGLE_APPLICATION_CREDENTIALS", ".cred.json");
    let credentials = credentials::CredentialsFile::new().await?;
    let ts = token_source::authorized_user_token_source::UserAccountTokenSource::new(&credentials)?;
    let token = ts.token().await?;
    assert_eq!("Bearer", token.token_type);
    assert_eq!(true, token.expiry.unwrap().timestamp() > 0);
    Ok(())
}