WWW-Google-Cloud-Auth-ServiceAccount

 view release on metacpan or  search on metacpan

lib/WWW/Google/Cloud/Auth/ServiceAccount.pm  view on Meta::CPAN

    open (my $fh, '<', $self->credentials_path) or die("Can't open credentials file: $!");
    my $creds_json = do {local $/; <$fh>};
    my $creds      = JSON::decode_json($creds_json);
    my $payload = {
        iss => $creds->{client_email},
        scope => $self->scope,
        aud => 'https://www.googleapis.com/oauth2/v4/token',
        exp => $self->clock->() + 600,
        iat => $self->clock->(),
    };
    my $key = $creds->{private_key};
    return encode_jwt(alg => 'RS256', payload => $payload, key => \$key);
}

sub get_token {
    my $self = shift;
    return $self->_token if($self->_token && $self->clock->() < $self->_token_expiry);

    my $jwt = $self->_generate_jwt();
    my $response = $self->_ua->post(
        $self->auth_url,

t/data/test_creds.json  view on Meta::CPAN

{
  "type": "service_account",
  "project_id": "foobar",
  "private_key_id": "11111111111111111",
  "private_key": "-----BEGIN RSA PRIVATE KEY-----\nMIICXgIBAAKBgQDIgnSESkWlGsciNgH45DkXqbpVmvsrwfyHNTZwXQYVJNXjmqdp\nw2AsWDvvHwdtAqh8SWPgBtE8NmjsxqS7DxBBI5ku5Jpt8CwplOA4qt5GLt3/Fc7W\nDTf8KvZUwuLErp9F0+5O8kOr5SqMARR9Ko60PmJxNUm2cBx6TYIZ6qoXZQIDAQAB\nA...
  "client_email": "johndoe@foobar.iam.gserviceaccount.com",
  "client_id": "123456",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://oauth2.googleapis.com/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/foobar.iam.gserviceaccount.com"
}

 view all matches for this distribution
 view release on metacpan -  search on metacpan

( run in 1.111 second using v1.00-cache-2.02-grep-82fe00e-cpan-f73e49a70403 )