diff --git a/extensions/microsoft-authentication/extension-browser.webpack.config.js b/extensions/microsoft-authentication/extension-browser.webpack.config.js index 0d395fc0f96c1..1590cef5e5f12 100644 --- a/extensions/microsoft-authentication/extension-browser.webpack.config.js +++ b/extensions/microsoft-authentication/extension-browser.webpack.config.js @@ -24,6 +24,7 @@ module.exports = withBrowserDefaults({ alias: { './node/authServer': path.resolve(__dirname, 'src/browser/authServer'), './node/buffer': path.resolve(__dirname, 'src/browser/buffer'), + './node/fetch': path.resolve(__dirname, 'src/browser/fetch'), './node/authProvider': path.resolve(__dirname, 'src/browser/authProvider'), } } diff --git a/extensions/microsoft-authentication/src/AADHelper.ts b/extensions/microsoft-authentication/src/AADHelper.ts index 713f5f12e9ad1..9722145dd0376 100644 --- a/extensions/microsoft-authentication/src/AADHelper.ts +++ b/extensions/microsoft-authentication/src/AADHelper.ts @@ -11,6 +11,7 @@ import { generateCodeChallenge, generateCodeVerifier, randomUUID } from './crypt import { BetterTokenStorage, IDidChangeInOtherWindowEvent } from './betterSecretStorage'; import { LoopbackAuthServer } from './node/authServer'; import { base64Decode } from './node/buffer'; +import fetch from './node/fetch'; import { UriEventHandler } from './UriEventHandler'; import TelemetryReporter from '@vscode/extension-telemetry'; import { Environment } from '@azure/ms-rest-azure-env'; @@ -805,11 +806,10 @@ export class AzureActiveDirectoryService { let result; let errorMessage: string | undefined; try { - result = await fetch(endpoint, { + result = await fetch(endpoint.toString(), { method: 'POST', headers: { - 'Content-Type': 'application/x-www-form-urlencoded', - 'Content-Length': postData.length.toString() + 'Content-Type': 'application/x-www-form-urlencoded' }, body: postData }); diff --git a/extensions/microsoft-authentication/src/browser/fetch.ts b/extensions/microsoft-authentication/src/browser/fetch.ts new file mode 100644 index 0000000000000..c61281ca8f882 --- /dev/null +++ b/extensions/microsoft-authentication/src/browser/fetch.ts @@ -0,0 +1,6 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +export default fetch; diff --git a/extensions/microsoft-authentication/src/node/fetch.ts b/extensions/microsoft-authentication/src/node/fetch.ts new file mode 100644 index 0000000000000..8b12a87b087b8 --- /dev/null +++ b/extensions/microsoft-authentication/src/node/fetch.ts @@ -0,0 +1,12 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +let _fetch: typeof fetch; +try { + _fetch = require('electron').net.fetch; +} catch { + _fetch = fetch; +} +export default _fetch;