@memberjunction/ng-auth-services 2.129.0 → 2.130.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/IAuthProvider.d.ts +179 -17
- package/dist/lib/IAuthProvider.d.ts.map +1 -1
- package/dist/lib/auth-types.d.ts +351 -0
- package/dist/lib/auth-types.d.ts.map +1 -0
- package/dist/lib/auth-types.js +98 -0
- package/dist/lib/auth-types.js.map +1 -0
- package/dist/lib/mjexplorer-auth-base.service.d.ts +225 -49
- package/dist/lib/mjexplorer-auth-base.service.d.ts.map +1 -1
- package/dist/lib/mjexplorer-auth-base.service.js +189 -54
- package/dist/lib/mjexplorer-auth-base.service.js.map +1 -1
- package/dist/lib/providers/mjexplorer-auth0-provider.service.d.ts +69 -17
- package/dist/lib/providers/mjexplorer-auth0-provider.service.d.ts.map +1 -1
- package/dist/lib/providers/mjexplorer-auth0-provider.service.js +255 -75
- package/dist/lib/providers/mjexplorer-auth0-provider.service.js.map +1 -1
- package/dist/lib/providers/mjexplorer-msal-provider.service.d.ts +65 -16
- package/dist/lib/providers/mjexplorer-msal-provider.service.d.ts.map +1 -1
- package/dist/lib/providers/mjexplorer-msal-provider.service.js +345 -113
- package/dist/lib/providers/mjexplorer-msal-provider.service.js.map +1 -1
- package/dist/lib/providers/mjexplorer-okta-provider.service.d.ts +63 -30
- package/dist/lib/providers/mjexplorer-okta-provider.service.d.ts.map +1 -1
- package/dist/lib/providers/mjexplorer-okta-provider.service.js +273 -234
- package/dist/lib/providers/mjexplorer-okta-provider.service.js.map +1 -1
- package/dist/public-api.d.ts +1 -0
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +2 -0
- package/dist/public-api.js.map +1 -1
- package/package.json +3 -3
|
@@ -8,15 +8,23 @@ var MJMSALProvider_1;
|
|
|
8
8
|
import { Injectable } from '@angular/core';
|
|
9
9
|
import { RegisterClass } from '@memberjunction/global';
|
|
10
10
|
import { MJAuthBase } from '../mjexplorer-auth-base.service';
|
|
11
|
-
import { BehaviorSubject, Subject,
|
|
11
|
+
import { BehaviorSubject, Subject, filter, takeUntil } from 'rxjs';
|
|
12
12
|
import { MsalBroadcastService, MsalService, MSAL_INSTANCE, MSAL_GUARD_CONFIG, MSAL_INTERCEPTOR_CONFIG, MsalGuard } from '@azure/msal-angular';
|
|
13
|
-
import { CacheLookupPolicy, InteractionRequiredAuthError, InteractionStatus, PublicClientApplication, InteractionType } from '@azure/msal-browser';
|
|
13
|
+
import { CacheLookupPolicy, InteractionRequiredAuthError, InteractionStatus, PublicClientApplication, InteractionType, BrowserAuthError } from '@azure/msal-browser';
|
|
14
14
|
import { LogError } from '@memberjunction/core';
|
|
15
|
+
import { AuthErrorType } from '../auth-types';
|
|
15
16
|
import * as i0 from "@angular/core";
|
|
16
17
|
import * as i1 from "@azure/msal-angular";
|
|
17
18
|
// Prevent tree-shaking by explicitly referencing the class
|
|
18
19
|
export function LoadMJMSALProvider() {
|
|
19
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* MSAL (Microsoft Authentication Library) provider implementation - v3.0.0
|
|
23
|
+
*
|
|
24
|
+
* Implements the abstract methods from MJAuthBase to hide MSAL-specific details.
|
|
25
|
+
* The key abstraction is that MSAL stores the JWT in AuthenticationResult.idToken,
|
|
26
|
+
* but consumers never need to know this detail.
|
|
27
|
+
*/
|
|
20
28
|
let MJMSALProvider = class MJMSALProvider extends MJAuthBase {
|
|
21
29
|
static { MJMSALProvider_1 = this; }
|
|
22
30
|
auth;
|
|
@@ -35,8 +43,8 @@ let MJMSALProvider = class MJMSALProvider extends MJAuthBase {
|
|
|
35
43
|
provide: MSAL_INSTANCE,
|
|
36
44
|
useValue: new PublicClientApplication({
|
|
37
45
|
auth: {
|
|
38
|
-
clientId: environment
|
|
39
|
-
authority: environment
|
|
46
|
+
clientId: environment['CLIENT_ID'],
|
|
47
|
+
authority: environment['CLIENT_AUTHORITY'],
|
|
40
48
|
redirectUri: window.location.origin,
|
|
41
49
|
},
|
|
42
50
|
cache: {
|
|
@@ -73,11 +81,11 @@ let MJMSALProvider = class MJMSALProvider extends MJAuthBase {
|
|
|
73
81
|
super(config);
|
|
74
82
|
this.auth = auth;
|
|
75
83
|
this.msalBroadcastService = msalBroadcastService;
|
|
76
|
-
// Defer initialization to avoid blocking app startup
|
|
77
|
-
// This will be called lazily when auth is actually needed
|
|
78
84
|
}
|
|
79
|
-
|
|
80
|
-
|
|
85
|
+
// ============================================================================
|
|
86
|
+
// LIFECYCLE METHODS
|
|
87
|
+
// ============================================================================
|
|
88
|
+
async initialize() {
|
|
81
89
|
if (this._initPromise) {
|
|
82
90
|
return this._initPromise;
|
|
83
91
|
}
|
|
@@ -92,7 +100,9 @@ let MJMSALProvider = class MJMSALProvider extends MJAuthBase {
|
|
|
92
100
|
// User just logged in via redirect
|
|
93
101
|
this.auth.instance.setActiveAccount(redirectResponse.account);
|
|
94
102
|
this.updateAuthState(true);
|
|
95
|
-
|
|
103
|
+
// Update user info from account
|
|
104
|
+
const userInfo = this.mapMSALAccountToStandard(redirectResponse.account);
|
|
105
|
+
this.updateUserInfo(userInfo);
|
|
96
106
|
this._initializationCompleted$.next(true);
|
|
97
107
|
}
|
|
98
108
|
else {
|
|
@@ -101,7 +111,9 @@ let MJMSALProvider = class MJMSALProvider extends MJAuthBase {
|
|
|
101
111
|
if (accounts.length > 0) {
|
|
102
112
|
this.auth.instance.setActiveAccount(accounts[0]);
|
|
103
113
|
this.updateAuthState(true);
|
|
104
|
-
|
|
114
|
+
// Update user info from cached account
|
|
115
|
+
const userInfo = this.mapMSALAccountToStandard(accounts[0]);
|
|
116
|
+
this.updateUserInfo(userInfo);
|
|
105
117
|
this._initializationCompleted$.next(true);
|
|
106
118
|
}
|
|
107
119
|
}
|
|
@@ -109,41 +121,37 @@ let MJMSALProvider = class MJMSALProvider extends MJAuthBase {
|
|
|
109
121
|
this.msalBroadcastService.inProgress$
|
|
110
122
|
.pipe(filter((status) => status === InteractionStatus.None), takeUntil(this._destroying$))
|
|
111
123
|
.subscribe(() => {
|
|
112
|
-
const
|
|
124
|
+
const accounts = this.auth.instance.getAllAccounts();
|
|
125
|
+
const isAuth = accounts.length > 0;
|
|
113
126
|
this.updateAuthState(isAuth);
|
|
114
|
-
this.authenticated = isAuth;
|
|
115
127
|
if (isAuth) {
|
|
116
|
-
this.auth.instance.setActiveAccount(
|
|
128
|
+
this.auth.instance.setActiveAccount(accounts[0]);
|
|
129
|
+
const userInfo = this.mapMSALAccountToStandard(accounts[0]);
|
|
130
|
+
this.updateUserInfo(userInfo);
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
this.updateUserInfo(null);
|
|
117
134
|
}
|
|
118
135
|
this._initializationCompleted$.next(true);
|
|
119
136
|
});
|
|
120
137
|
}
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
// Trigger lazy initialization if not started
|
|
124
|
-
if (!this._initPromise) {
|
|
125
|
-
await this.initializeMSAL();
|
|
126
|
-
}
|
|
127
|
-
else if (!this._initializationCompleted$.value) {
|
|
128
|
-
// Waiting for existing initialization to complete...
|
|
129
|
-
await this._initPromise;
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
login(options) {
|
|
138
|
+
async loginInternal(options) {
|
|
139
|
+
await this.ensureInitialized();
|
|
133
140
|
const silentRequest = {
|
|
134
141
|
scopes: ['User.Read', 'email', 'profile'],
|
|
135
142
|
...options
|
|
136
143
|
};
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
144
|
+
return new Promise((resolve, reject) => {
|
|
145
|
+
this.auth.loginRedirect(silentRequest).subscribe({
|
|
146
|
+
next: () => {
|
|
147
|
+
resolve();
|
|
148
|
+
},
|
|
149
|
+
error: (error) => {
|
|
150
|
+
LogError(error);
|
|
151
|
+
reject(error);
|
|
152
|
+
}
|
|
153
|
+
});
|
|
145
154
|
});
|
|
146
|
-
return of(void 0);
|
|
147
155
|
}
|
|
148
156
|
async logout() {
|
|
149
157
|
await this.ensureInitialized();
|
|
@@ -151,106 +159,333 @@ let MJMSALProvider = class MJMSALProvider extends MJAuthBase {
|
|
|
151
159
|
// Logout will trigger a redirect
|
|
152
160
|
});
|
|
153
161
|
}
|
|
154
|
-
async
|
|
162
|
+
async handleCallback() {
|
|
163
|
+
// MSAL Angular handles callbacks internally through its broadcast service
|
|
164
|
+
// The handleRedirectPromise is called in initialize()
|
|
155
165
|
await this.ensureInitialized();
|
|
156
|
-
const silentRequest = {
|
|
157
|
-
scopes: ['User.Read', 'email', 'profile'],
|
|
158
|
-
cacheLookupPolicy: CacheLookupPolicy.RefreshTokenAndNetwork,
|
|
159
|
-
};
|
|
160
|
-
return from(this.auth.instance.acquireTokenSilent(silentRequest));
|
|
161
166
|
}
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
167
|
+
// ============================================================================
|
|
168
|
+
// ABSTRACT METHOD IMPLEMENTATIONS (v3.0.0)
|
|
169
|
+
// ============================================================================
|
|
170
|
+
/**
|
|
171
|
+
* Extract ID token from MSAL's storage
|
|
172
|
+
*
|
|
173
|
+
* MSAL stores the JWT in AuthenticationResult.idToken
|
|
174
|
+
* This is the key abstraction - consumers never need to know about MSAL's structure!
|
|
175
|
+
*/
|
|
176
|
+
async extractIdTokenInternal() {
|
|
177
|
+
try {
|
|
178
|
+
await this.ensureInitialized();
|
|
179
|
+
const account = this.auth.instance.getActiveAccount();
|
|
180
|
+
if (!account) {
|
|
181
|
+
return null;
|
|
182
|
+
}
|
|
183
|
+
// First try to get cached token from account
|
|
184
|
+
// This avoids unnecessary iframe calls that can timeout
|
|
185
|
+
if (account.idToken) {
|
|
186
|
+
return account.idToken;
|
|
187
|
+
}
|
|
188
|
+
// If not in account, try silent token acquisition from cache only
|
|
189
|
+
// Use CacheLookupPolicy.AccessToken to avoid iframe calls
|
|
190
|
+
const response = await this.auth.instance.acquireTokenSilent({
|
|
191
|
+
scopes: ['User.Read', 'email', 'profile'],
|
|
192
|
+
account: account,
|
|
193
|
+
cacheLookupPolicy: CacheLookupPolicy.AccessToken
|
|
194
|
+
});
|
|
195
|
+
// MSAL-specific detail: JWT is in idToken property
|
|
196
|
+
return response.idToken || null;
|
|
197
|
+
}
|
|
198
|
+
catch (error) {
|
|
199
|
+
console.error('[MSAL] Error extracting ID token:', error);
|
|
200
|
+
return null;
|
|
201
|
+
}
|
|
165
202
|
}
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
203
|
+
/**
|
|
204
|
+
* Extract complete token info from MSAL
|
|
205
|
+
*
|
|
206
|
+
* Maps MSAL's AuthenticationResult to StandardAuthToken
|
|
207
|
+
*/
|
|
208
|
+
async extractTokenInfoInternal() {
|
|
209
|
+
try {
|
|
210
|
+
await this.ensureInitialized();
|
|
211
|
+
const account = this.auth.instance.getActiveAccount();
|
|
212
|
+
if (!account) {
|
|
213
|
+
return null;
|
|
214
|
+
}
|
|
215
|
+
// Use cache-only lookup to avoid iframe timeouts during normal token extraction
|
|
216
|
+
const response = await this.auth.instance.acquireTokenSilent({
|
|
217
|
+
scopes: ['User.Read', 'email', 'profile'],
|
|
218
|
+
account: account,
|
|
219
|
+
cacheLookupPolicy: CacheLookupPolicy.AccessToken
|
|
220
|
+
});
|
|
221
|
+
if (!response.idToken) {
|
|
222
|
+
return null;
|
|
223
|
+
}
|
|
224
|
+
return {
|
|
225
|
+
idToken: response.idToken,
|
|
226
|
+
accessToken: response.accessToken,
|
|
227
|
+
expiresAt: response.expiresOn ? response.expiresOn.getTime() : 0,
|
|
228
|
+
scopes: response.scopes
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
catch (error) {
|
|
232
|
+
// If acquireTokenSilent fails (e.g., iframe timeout), try to use cached account data
|
|
233
|
+
console.error('[MSAL] Error extracting token info:', error);
|
|
234
|
+
const account = this.auth.instance.getActiveAccount();
|
|
235
|
+
if (account?.idToken) {
|
|
236
|
+
// Return basic token info from account if available
|
|
237
|
+
return {
|
|
238
|
+
idToken: account.idToken,
|
|
239
|
+
expiresAt: 0, // Unknown from account alone
|
|
240
|
+
scopes: []
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
return null;
|
|
244
|
+
}
|
|
169
245
|
}
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
246
|
+
/**
|
|
247
|
+
* Extract user info from MSAL account
|
|
248
|
+
*
|
|
249
|
+
* Maps MSAL's AccountInfo structure to StandardUserInfo
|
|
250
|
+
*/
|
|
251
|
+
async extractUserInfoInternal() {
|
|
252
|
+
try {
|
|
253
|
+
await this.ensureInitialized();
|
|
254
|
+
const account = this.auth.instance.getActiveAccount();
|
|
255
|
+
if (!account) {
|
|
256
|
+
return null;
|
|
257
|
+
}
|
|
258
|
+
return this.mapMSALAccountToStandard(account);
|
|
176
259
|
}
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
260
|
+
catch (error) {
|
|
261
|
+
console.error('[MSAL] Error extracting user info:', error);
|
|
262
|
+
return null;
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Refresh token using MSAL's silent token acquisition
|
|
267
|
+
*
|
|
268
|
+
* Uses acquireTokenSilent with forceRefresh to get new tokens
|
|
269
|
+
*/
|
|
270
|
+
async refreshTokenInternal() {
|
|
271
|
+
try {
|
|
272
|
+
await this.ensureInitialized();
|
|
273
|
+
const account = this.auth.instance.getActiveAccount();
|
|
274
|
+
if (!account) {
|
|
275
|
+
return {
|
|
276
|
+
success: false,
|
|
277
|
+
error: {
|
|
278
|
+
type: AuthErrorType.NO_ACTIVE_SESSION,
|
|
279
|
+
message: 'No active account found',
|
|
280
|
+
userMessage: 'You need to log in to continue.'
|
|
281
|
+
}
|
|
282
|
+
};
|
|
283
|
+
}
|
|
284
|
+
// IMPORTANT: Match original code exactly - no account parameter, no offline_access
|
|
285
|
+
// This allows MSAL to use lenient matching and successfully refresh tokens
|
|
286
|
+
const response = await this.auth.instance.acquireTokenSilent({
|
|
287
|
+
scopes: ['User.Read', 'email', 'profile'],
|
|
288
|
+
cacheLookupPolicy: CacheLookupPolicy.RefreshTokenAndNetwork
|
|
289
|
+
// NOTE: Intentionally NOT passing account or offline_access to match original working code
|
|
290
|
+
});
|
|
291
|
+
if (!response.idToken) {
|
|
292
|
+
return {
|
|
293
|
+
success: false,
|
|
294
|
+
error: {
|
|
295
|
+
type: AuthErrorType.NO_ACTIVE_SESSION,
|
|
296
|
+
message: 'Token refresh succeeded but no ID token returned',
|
|
297
|
+
userMessage: 'Session refresh failed. Please log in again.'
|
|
298
|
+
}
|
|
299
|
+
};
|
|
300
|
+
}
|
|
301
|
+
const token = {
|
|
302
|
+
idToken: response.idToken,
|
|
303
|
+
accessToken: response.accessToken,
|
|
304
|
+
expiresAt: response.expiresOn ? response.expiresOn.getTime() : 0,
|
|
305
|
+
scopes: response.scopes
|
|
306
|
+
};
|
|
307
|
+
return {
|
|
308
|
+
success: true,
|
|
309
|
+
token
|
|
310
|
+
};
|
|
311
|
+
}
|
|
312
|
+
catch (error) {
|
|
313
|
+
console.error('[MSAL] Token refresh failed:', error);
|
|
314
|
+
// Check if this is an iframe timeout or interaction required error
|
|
315
|
+
const errorCode = error?.errorCode;
|
|
316
|
+
if (errorCode === 'monitor_window_timeout' || error instanceof InteractionRequiredAuthError) {
|
|
317
|
+
// Return INTERACTION_REQUIRED error - base class will call handleSessionExpiryInternal
|
|
318
|
+
return {
|
|
319
|
+
success: false,
|
|
320
|
+
error: {
|
|
321
|
+
type: AuthErrorType.INTERACTION_REQUIRED,
|
|
322
|
+
message: 'Silent token refresh failed - interaction required',
|
|
323
|
+
userMessage: 'Your session has expired. Redirecting to login...',
|
|
324
|
+
originalError: error
|
|
325
|
+
}
|
|
326
|
+
};
|
|
189
327
|
}
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
328
|
+
return {
|
|
329
|
+
success: false,
|
|
330
|
+
error: this.classifyErrorInternal(error)
|
|
331
|
+
};
|
|
332
|
+
}
|
|
193
333
|
}
|
|
194
|
-
|
|
195
|
-
|
|
334
|
+
/**
|
|
335
|
+
* Classify MSAL-specific errors into semantic types
|
|
336
|
+
*
|
|
337
|
+
* Maps MSAL error classes to AuthErrorType enum
|
|
338
|
+
*/
|
|
339
|
+
classifyErrorInternal(error) {
|
|
340
|
+
const errorObj = error;
|
|
341
|
+
const message = errorObj?.['message'] || 'Unknown error';
|
|
342
|
+
const errorCode = errorObj?.['errorCode'] || '';
|
|
343
|
+
// Check for specific MSAL error types
|
|
344
|
+
if (error instanceof InteractionRequiredAuthError) {
|
|
345
|
+
return {
|
|
346
|
+
type: AuthErrorType.INTERACTION_REQUIRED,
|
|
347
|
+
message,
|
|
348
|
+
originalError: error,
|
|
349
|
+
userMessage: 'Additional authentication is required. Please log in again.'
|
|
350
|
+
};
|
|
351
|
+
}
|
|
352
|
+
if (error instanceof BrowserAuthError) {
|
|
353
|
+
// Check specific error codes
|
|
354
|
+
if (errorCode === 'user_cancelled' || message.includes('user cancelled')) {
|
|
355
|
+
return {
|
|
356
|
+
type: AuthErrorType.USER_CANCELLED,
|
|
357
|
+
message,
|
|
358
|
+
originalError: error,
|
|
359
|
+
userMessage: 'Login was cancelled.'
|
|
360
|
+
};
|
|
361
|
+
}
|
|
362
|
+
return {
|
|
363
|
+
type: AuthErrorType.NO_ACTIVE_SESSION,
|
|
364
|
+
message,
|
|
365
|
+
originalError: error,
|
|
366
|
+
userMessage: 'Authentication error. Please log in again.'
|
|
367
|
+
};
|
|
368
|
+
}
|
|
369
|
+
// Check message patterns
|
|
370
|
+
if (message.includes('token') && message.includes('expired')) {
|
|
371
|
+
return {
|
|
372
|
+
type: AuthErrorType.TOKEN_EXPIRED,
|
|
373
|
+
message,
|
|
374
|
+
originalError: error,
|
|
375
|
+
userMessage: 'Your session has expired. Please log in again.'
|
|
376
|
+
};
|
|
377
|
+
}
|
|
378
|
+
if (message.includes('network') || message.includes('fetch')) {
|
|
379
|
+
return {
|
|
380
|
+
type: AuthErrorType.NETWORK_ERROR,
|
|
381
|
+
message,
|
|
382
|
+
originalError: error,
|
|
383
|
+
userMessage: 'Network error. Please check your connection and try again.'
|
|
384
|
+
};
|
|
385
|
+
}
|
|
386
|
+
if (message.includes('you need to be authorized')) {
|
|
387
|
+
return {
|
|
388
|
+
type: AuthErrorType.TOKEN_EXPIRED,
|
|
389
|
+
message,
|
|
390
|
+
originalError: error,
|
|
391
|
+
userMessage: 'Your session has expired. Please log in again.'
|
|
392
|
+
};
|
|
393
|
+
}
|
|
394
|
+
// Default to unknown error
|
|
395
|
+
return {
|
|
396
|
+
type: AuthErrorType.UNKNOWN_ERROR,
|
|
397
|
+
message,
|
|
398
|
+
originalError: error,
|
|
399
|
+
userMessage: 'An unexpected error occurred. Please try again.'
|
|
400
|
+
};
|
|
196
401
|
}
|
|
197
|
-
//
|
|
198
|
-
|
|
199
|
-
|
|
402
|
+
// ============================================================================
|
|
403
|
+
// HELPER METHODS
|
|
404
|
+
// ============================================================================
|
|
405
|
+
async ensureInitialized() {
|
|
406
|
+
if (!this._initPromise) {
|
|
407
|
+
await this.initialize();
|
|
408
|
+
}
|
|
409
|
+
else if (!this._initializationCompleted$.value) {
|
|
410
|
+
await this._initPromise;
|
|
411
|
+
}
|
|
200
412
|
}
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
413
|
+
/**
|
|
414
|
+
* Map MSAL AccountInfo to StandardUserInfo
|
|
415
|
+
*/
|
|
416
|
+
mapMSALAccountToStandard(account) {
|
|
417
|
+
return {
|
|
418
|
+
id: account.localAccountId || account.homeAccountId,
|
|
419
|
+
email: account.username || '',
|
|
420
|
+
name: account.name || account.username || '',
|
|
421
|
+
givenName: account.idTokenClaims?.['given_name'],
|
|
422
|
+
familyName: account.idTokenClaims?.['family_name'],
|
|
423
|
+
preferredUsername: account.username,
|
|
424
|
+
emailVerified: true // MSAL doesn't provide this, assume true
|
|
206
425
|
};
|
|
207
|
-
return new Promise((resolve, reject) => {
|
|
208
|
-
this.auth.loginRedirect(silentRequest).subscribe({
|
|
209
|
-
next: () => {
|
|
210
|
-
resolve();
|
|
211
|
-
},
|
|
212
|
-
error: (error) => {
|
|
213
|
-
LogError(error);
|
|
214
|
-
reject(error);
|
|
215
|
-
}
|
|
216
|
-
});
|
|
217
|
-
});
|
|
218
426
|
}
|
|
219
|
-
|
|
220
|
-
|
|
427
|
+
/**
|
|
428
|
+
* Get profile picture URL from Microsoft Graph API
|
|
429
|
+
*
|
|
430
|
+
* MSAL requires fetching the photo from Microsoft Graph.
|
|
431
|
+
* This is the key advantage of encapsulation - consumers don't need
|
|
432
|
+
* to know about Graph API, they just call getProfilePictureUrl()!
|
|
433
|
+
*/
|
|
434
|
+
async getProfilePictureUrlInternal() {
|
|
221
435
|
try {
|
|
436
|
+
await this.ensureInitialized();
|
|
222
437
|
const account = this.auth.instance.getActiveAccount();
|
|
223
438
|
if (!account) {
|
|
224
439
|
return null;
|
|
225
440
|
}
|
|
441
|
+
// Get access token for Microsoft Graph
|
|
226
442
|
const response = await this.auth.instance.acquireTokenSilent({
|
|
227
443
|
scopes: ['User.Read'],
|
|
228
444
|
account: account,
|
|
229
445
|
forceRefresh: false
|
|
230
446
|
});
|
|
231
|
-
|
|
447
|
+
if (!response.accessToken) {
|
|
448
|
+
return null;
|
|
449
|
+
}
|
|
450
|
+
// Fetch photo from Microsoft Graph
|
|
451
|
+
const graphResponse = await fetch('https://graph.microsoft.com/v1.0/me/photo/$value', {
|
|
452
|
+
headers: { 'Authorization': `Bearer ${response.accessToken}` }
|
|
453
|
+
});
|
|
454
|
+
if (graphResponse.ok) {
|
|
455
|
+
const blob = await graphResponse.blob();
|
|
456
|
+
return URL.createObjectURL(blob);
|
|
457
|
+
}
|
|
458
|
+
return null;
|
|
232
459
|
}
|
|
233
460
|
catch (error) {
|
|
234
|
-
|
|
235
|
-
// Try interactive login if silent acquisition fails
|
|
236
|
-
try {
|
|
237
|
-
const response = await this.auth.instance.acquireTokenPopup({
|
|
238
|
-
scopes: ['User.Read']
|
|
239
|
-
});
|
|
240
|
-
return response.accessToken;
|
|
241
|
-
}
|
|
242
|
-
catch (popupError) {
|
|
243
|
-
console.error('Failed to acquire token via popup:', popupError);
|
|
244
|
-
}
|
|
245
|
-
}
|
|
461
|
+
console.error('[MSAL] Error getting profile picture:', error);
|
|
246
462
|
return null;
|
|
247
463
|
}
|
|
248
464
|
}
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
465
|
+
/**
|
|
466
|
+
* Handle session expiry by redirecting to Microsoft login
|
|
467
|
+
*
|
|
468
|
+
* This method is called by the base class when silent token refresh fails
|
|
469
|
+
* with INTERACTION_REQUIRED error. It redirects to Microsoft login and never returns.
|
|
470
|
+
* After authentication, the app will reload and re-initialize with a fresh token.
|
|
471
|
+
*/
|
|
472
|
+
async handleSessionExpiryInternal() {
|
|
473
|
+
console.log('[MSAL] Redirecting to Microsoft login for re-authentication...');
|
|
474
|
+
// Initiate redirect authentication - page will navigate away
|
|
475
|
+
this.auth.loginRedirect({
|
|
476
|
+
scopes: ['User.Read', 'email', 'profile'],
|
|
477
|
+
prompt: 'select_account'
|
|
478
|
+
}).subscribe({
|
|
479
|
+
error: (redirectError) => {
|
|
480
|
+
console.error('[MSAL] Redirect initiation failed:', redirectError);
|
|
481
|
+
}
|
|
482
|
+
});
|
|
483
|
+
// Return a promise that never resolves - page will navigate before this matters
|
|
484
|
+
return new Promise(() => { });
|
|
253
485
|
}
|
|
486
|
+
// ============================================================================
|
|
487
|
+
// CONFIGURATION
|
|
488
|
+
// ============================================================================
|
|
254
489
|
getRequiredConfig() {
|
|
255
490
|
return ['clientId', 'tenantId'];
|
|
256
491
|
}
|
|
@@ -258,17 +493,14 @@ let MJMSALProvider = class MJMSALProvider extends MJAuthBase {
|
|
|
258
493
|
// MSAL configuration is handled by Angular module providers
|
|
259
494
|
return true;
|
|
260
495
|
}
|
|
496
|
+
// ============================================================================
|
|
497
|
+
// CLEANUP
|
|
498
|
+
// ============================================================================
|
|
261
499
|
ngOnDestroy() {
|
|
262
|
-
// Complete the destroying subject to clean up subscriptions
|
|
263
500
|
this._destroying$.next();
|
|
264
501
|
this._destroying$.complete();
|
|
265
|
-
// Clear any cached promises
|
|
266
502
|
this._initPromise = null;
|
|
267
|
-
// Complete behavior subjects
|
|
268
503
|
this._initializationCompleted$.complete();
|
|
269
|
-
this.isAuthenticated$.complete();
|
|
270
|
-
this.userProfile$.complete();
|
|
271
|
-
this.userEmail$.complete();
|
|
272
504
|
}
|
|
273
505
|
static ɵfac = function MJMSALProvider_Factory(t) { return new (t || MJMSALProvider)(i0.ɵɵinject(i1.MsalService), i0.ɵɵinject(i1.MsalBroadcastService)); };
|
|
274
506
|
static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: MJMSALProvider, factory: MJMSALProvider.ɵfac, providedIn: 'root' });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mjexplorer-msal-provider.service.js","sourceRoot":"","sources":["../../../src/lib/providers/mjexplorer-msal-provider.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mjexplorer-msal-provider.service.js","sourceRoot":"","sources":["../../../src/lib/providers/mjexplorer-msal-provider.service.ts"],"names":[],"mappings":"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"}
|