Skip to content

Commit 244d615

Browse files
authored
chore(changeset): update msal acquire-token-request default [hotfix] (#3797)
1 parent 79a121b commit 244d615

File tree

2 files changed

+26
-1
lines changed

2 files changed

+26
-1
lines changed
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
---
2+
"@equinor/fusion-framework-module-msal": patch
3+
---
4+
5+
Ensure `acquireToken` normalizes legacy options when `request` is omitted by creating a default request object and applying active account fallback.
6+
7+
Previously `{ scopes: ["User.Read"] }` could yield a request without `account`, relying on downstream resolution. The provider now explicitly supplies an empty request object, resolves `account` from the active session, and merges legacy `scopes` for clearer telemetry and safer behavior.
8+
9+
Before:
10+
```typescript
11+
await provider.acquireToken({ scopes: ["User.Read"] }); // request undefined, account implicit
12+
```
13+
After (both forms valid, account resolved automatically):
14+
```typescript
15+
await provider.acquireToken({ scopes: ["User.Read"] });
16+
await provider.acquireToken({ request: { scopes: ["User.Read"] } });
17+
```
18+
19+
Internal: improves stability of legacy usage without breaking API.

packages/modules/msal/src/MsalProvider.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import type { MsalConfig } from './MsalConfigurator';
1313
import type { AcquireTokenOptionsLegacy, IMsalProvider } from './MsalProvider.interface';
1414
import { createProxyProvider } from './create-proxy-provider';
1515
import type {
16+
AcquireTokenOptions,
1617
AcquireTokenResult,
1718
IMsalClient,
1819
LoginOptions,
@@ -245,7 +246,12 @@ export class MsalProvider extends BaseModuleProvider<MsalConfig> implements IMsa
245246
* ```
246247
*/
247248
async acquireToken(options: AcquireTokenOptionsLegacy): Promise<AcquireTokenResult> {
248-
const { behavior = 'redirect', silent = true, request } = options;
249+
const {
250+
behavior = 'redirect',
251+
silent = true,
252+
request = {} as AcquireTokenOptions['request'],
253+
} = options;
254+
249255
const account = request.account ?? this.account ?? undefined;
250256
// Extract scopes from either new format (request.scopes) or legacy format (scopes)
251257
const scopes = options.request?.scopes ?? options?.scopes ?? [];

0 commit comments

Comments
 (0)