Auth.prototype.getAuthClient = function (callback) {
var self = this;
var config = self.config;
if (this.authClient) {
setImmediate(function () {
callback(null, self.authClient);
});
return;
}
var googleAuth = new GoogleAuth();
var keyFile = config.keyFilename || config.keyFile;
if (config.credentials || path.extname(keyFile) === '.json') {
googleAuth.fromJSON(config.credentials || require(keyFile), addScope);
} else if (keyFile) {
var authClient = new googleAuth.JWT();
authClient.keyFile = keyFile;
authClient.email = config.email;
addScope(null, authClient);
} else {
googleAuth.getApplicationDefault(addScope);
}
function addScope(err, authClient, projectId) {
if (err) {
callback(err);
return;
}
if (authClient.createScopedRequired()) {
if (!config.scopes) {
var scopeError = new Error('Scopes are required for this request.');
scopeError.code = 'MISSING_SCOPE';
callback(scopeError);
return;
}
authClient.scopes = config.scopes;
}
self.authClient = authClient;
self.projectId = projectId || authClient.projectId;
callback(null, authClient);
}
};
var assign = require('object-assign');
var GoogleAuth = require('google-auth-library');
+var path = require('path');
function Auth(config) {
if (!(this instanceof Auth)) {
@@ -40,15 +41,15 @@ Auth.prototype.getAuthClient = function (callback) {
}
var googleAuth = new GoogleAuth();
+ var keyFile = config.keyFilename || config.keyFile;
- if (config.keyFilename || config.keyFile) {
+ if (config.credentials || path.extname(keyFile) === '.json') {
+ googleAuth.fromJSON(config.credentials || require(keyFile), addScope);
+ } else if (keyFile) {
var authClient = new googleAuth.JWT();
- authClient.keyFile = config.keyFilename || config.keyFile;
+ authClient.keyFile = keyFile;
authClient.email = config.email;
- authClient.scopes = config.scopes;
addScope(null, authClient);
- } else if (config.credentials) {
- googleAuth.fromJSON(config.credentials, addScope);
} else {
googleAuth.getApplicationDefault(addScope);
}
@@ -59,7 +60,7 @@ Auth.prototype.getAuthClient = function (callback) {
return;
}
- if (authClient.createScopedRequired && authClient.createScopedRequired()) {
+ if (authClient.createScopedRequired()) {
if (!config.scopes) {
var scopeError = new Error('Scopes are required for this request.');
scopeError.code = 'MISSING_SCOPE';
@@ -67,11 +68,11 @@ Auth.prototype.getAuthClient = function (callback) {
return;
}
- authClient = authClient.createScoped(config.scopes);
var assign = require('object-assign'); var GoogleAuth = require('google-auth-library'); +var path = require('path'); function Auth(config) { if (!(this instanceof Auth)) { @@ -40,15 +41,15 @@ Auth.prototype.getAuthClient = function (callback) { } var googleAuth = new GoogleAuth(); + var keyFile = config.keyFilename || config.keyFile; - if (config.keyFilename || config.keyFile) { + if (config.credentials || path.extname(keyFile) === '.json') { + googleAuth.fromJSON(config.credentials || require(keyFile), addScope); + } else if (keyFile) { var authClient = new googleAuth.JWT(); - authClient.keyFile = config.keyFilename || config.keyFile; + authClient.keyFile = keyFile; authClient.email = config.email; - authClient.scopes = config.scopes; addScope(null, authClient); - } else if (config.credentials) { - googleAuth.fromJSON(config.credentials, addScope); } else { googleAuth.getApplicationDefault(addScope); } @@ -59,7 +60,7 @@ Auth.prototype.getAuthClient = function (callback) { return; } - if (authClient.createScopedRequired && authClient.createScopedRequired()) { + if (authClient.createScopedRequired()) { if (!config.scopes) { var scopeError = new Error('Scopes are required for this request.'); scopeError.code = 'MISSING_SCOPE'; @@ -67,11 +68,11 @@ Auth.prototype.getAuthClient = function (callback) { return; } - authClient = authClient.createScoped(config.scopes);