diff --git a/packages/grpc-js/src/index.ts b/packages/grpc-js/src/index.ts index cc31ff51..0e4f9cf9 100644 --- a/packages/grpc-js/src/index.ts +++ b/packages/grpc-js/src/index.ts @@ -131,7 +131,7 @@ export const credentials = mixin( getHeaders.then( headers => { const metadata = new Metadata(); - for (const key in headers) { + for (const key of Object.keys(headers)) { metadata.add(key, headers[key]); } callback(null, metadata); diff --git a/packages/grpc-native-core/src/credentials.js b/packages/grpc-native-core/src/credentials.js index 9542acfd..d84f226d 100644 --- a/packages/grpc-native-core/src/credentials.js +++ b/packages/grpc-native-core/src/credentials.js @@ -187,20 +187,20 @@ function getAuthorizationHeaderFromGoogleCredential(google_credential, url, call // but has getRequestMetadata, which is deprecated in v2.0.0 if (typeof google_credential.getRequestHeaders === 'function') { google_credential.getRequestHeaders(url) - .then(function(header) { - callback(null, header.Authorization); + .then(function(headers) { + callback(null, headers); }) .catch(function(err) { callback(err); return; }); } else { - google_credential.getRequestMetadata(url, function(err, header) { + google_credential.getRequestMetadata(url, function(err, headers) { if (err) { callback(err); return; } - callback(null, header.Authorization); + callback(null, headers); }); } } @@ -217,14 +217,16 @@ exports.createFromGoogleCredential = function(google_credential) { return exports.createFromMetadataGenerator(function(auth_context, callback) { var service_url = auth_context.service_url; getAuthorizationHeaderFromGoogleCredential(google_credential, service_url, - function(err, authHeader) { + function(err, headers) { if (err) { common.log(constants.logVerbosity.INFO, 'Auth error:' + err); callback(err); return; } var metadata = new Metadata(); - metadata.add('authorization', authHeader); + for (const key of Object.keys(headers)) { + metadata.add(key, headers[key]); + } callback(null, metadata); }); });