google-auth-library-nodejs icon indicating copy to clipboard operation
google-auth-library-nodejs copied to clipboard

Requires projectId even when not used

Open KaylaNguyen opened this issue 6 years ago • 0 comments

Environment details

  • OS: linux
  • Node.js version: v10.15.3
  • npm version: 6.4.1
  • google-auth-library version: 5.0.0

Steps to reproduce

  1. Run gcloud auth revoke (if needed)
  2. Run gcloud auth application-default login
  3. run script
const {GoogleAuth} = require('google-auth-library')

async function run () {
  const auth = new GoogleAuth({
    scopes: 'https://www.googleapis.com/auth/cloud-platform'
  });
  client = await auth.getClient();
  console.info(client)
}
run();
  1. Get error Error: Unable to detect a Project Id in the current environment. To learn more about authentication and Google APIs, visit: https://cloud.google.com/docs/authentication/getting-started at _getDefaultProjectIdPromise.Promise (/usr/local/google/home/kaylanguyen/Downloads/buildartifacts-npm-tools/node_modules/google-auth-library/build/src/auth/googleauth.js:90:31) at process._tickCallback (internal/process/next_tick.js:68:7)

Expectation:

  • Able to create a client and get an access token without having to clarify projectID because I don't need it.

Work around:

  • Have a fake projectId
const auth = new GoogleAuth({
        scopes: 'https://www.googleapis.com/auth/cloud-platform',
        projectId: 'fake-project'
    });

Other gotchas:

  • export GOOGLE_APPLICATION_CREDENTIALS=<path/to/service/account> works
  • Runing both gcloud auth login and gcloud auth application-default login then the script works

KaylaNguyen avatar Jul 24 '19 22:07 KaylaNguyen