@memberjunction/ng-auth-services 2.90.0 → 2.92.0
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/AngularAuthProviderFactory.d.ts +46 -0
- package/dist/lib/AngularAuthProviderFactory.d.ts.map +1 -0
- package/dist/lib/AngularAuthProviderFactory.js +123 -0
- package/dist/lib/AngularAuthProviderFactory.js.map +1 -0
- package/dist/lib/IAuthProvider.d.ts +55 -0
- package/dist/lib/IAuthProvider.d.ts.map +1 -0
- package/dist/lib/IAuthProvider.js +2 -0
- package/dist/lib/IAuthProvider.js.map +1 -0
- package/dist/lib/auth-services.module.d.ts +10 -12
- package/dist/lib/auth-services.module.d.ts.map +1 -1
- package/dist/lib/auth-services.module.js +57 -74
- package/dist/lib/auth-services.module.js.map +1 -1
- package/dist/lib/mjexplorer-auth-base.service.d.ts +97 -12
- package/dist/lib/mjexplorer-auth-base.service.d.ts.map +1 -1
- package/dist/lib/mjexplorer-auth-base.service.js +112 -11
- package/dist/lib/mjexplorer-auth-base.service.js.map +1 -1
- package/dist/lib/providers/mjexplorer-auth0-provider.service.d.ts +49 -0
- package/dist/lib/providers/mjexplorer-auth0-provider.service.d.ts.map +1 -0
- package/dist/lib/providers/mjexplorer-auth0-provider.service.js +131 -0
- package/dist/lib/providers/mjexplorer-auth0-provider.service.js.map +1 -0
- package/dist/lib/providers/mjexplorer-msal-provider.service.d.ts +58 -0
- package/dist/lib/providers/mjexplorer-msal-provider.service.d.ts.map +1 -0
- package/dist/lib/providers/mjexplorer-msal-provider.service.js +267 -0
- package/dist/lib/providers/mjexplorer-msal-provider.service.js.map +1 -0
- package/dist/lib/providers/mjexplorer-okta-provider.service.d.ts +61 -0
- package/dist/lib/providers/mjexplorer-okta-provider.service.d.ts.map +1 -0
- package/dist/lib/providers/mjexplorer-okta-provider.service.js +379 -0
- package/dist/lib/providers/mjexplorer-okta-provider.service.js.map +1 -0
- package/dist/lib/redirect.component.d.ts +16 -0
- package/dist/lib/redirect.component.d.ts.map +1 -0
- package/dist/lib/redirect.component.js +67 -0
- package/dist/lib/redirect.component.js.map +1 -0
- package/dist/public-api.d.ts +6 -2
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +9 -2
- package/dist/public-api.js.map +1 -1
- package/package.json +5 -3
- package/dist/lib/mjexplorer-auth0-provider.service.d.ts +0 -18
- package/dist/lib/mjexplorer-auth0-provider.service.d.ts.map +0 -1
- package/dist/lib/mjexplorer-auth0-provider.service.js +0 -45
- package/dist/lib/mjexplorer-auth0-provider.service.js.map +0 -1
- package/dist/lib/mjexplorer-msal-provider.service.d.ts +0 -24
- package/dist/lib/mjexplorer-msal-provider.service.d.ts.map +0 -1
- package/dist/lib/mjexplorer-msal-provider.service.js +0 -108
- package/dist/lib/mjexplorer-msal-provider.service.js.map +0 -1
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Injector } from '@angular/core';
|
|
2
|
+
import { IAngularAuthProvider, AngularAuthProviderConfig } from './IAuthProvider';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* Factory for creating Angular authentication providers
|
|
6
|
+
* Uses MJGlobal ClassFactory pattern for extensibility
|
|
7
|
+
*/
|
|
8
|
+
export declare class AngularAuthProviderFactory {
|
|
9
|
+
private injector;
|
|
10
|
+
private static instance;
|
|
11
|
+
private providers;
|
|
12
|
+
private providerConfigs;
|
|
13
|
+
constructor(injector: Injector);
|
|
14
|
+
/**
|
|
15
|
+
* Get singleton instance
|
|
16
|
+
*/
|
|
17
|
+
static getInstance(): AngularAuthProviderFactory;
|
|
18
|
+
/**
|
|
19
|
+
* Create a provider based on configuration
|
|
20
|
+
*/
|
|
21
|
+
createProvider(config: AngularAuthProviderConfig): IAngularAuthProvider;
|
|
22
|
+
/**
|
|
23
|
+
* Get a provider by type
|
|
24
|
+
*/
|
|
25
|
+
getProvider(type: string): IAngularAuthProvider | undefined;
|
|
26
|
+
/**
|
|
27
|
+
* Get all registered provider types
|
|
28
|
+
*/
|
|
29
|
+
getRegisteredTypes(): string[];
|
|
30
|
+
/**
|
|
31
|
+
* Check if a provider type is registered
|
|
32
|
+
*/
|
|
33
|
+
isTypeRegistered(type: string): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Clear all providers (useful for testing)
|
|
36
|
+
*/
|
|
37
|
+
clearProviders(): void;
|
|
38
|
+
/**
|
|
39
|
+
* Get provider-specific Angular services that need to be injected
|
|
40
|
+
* This uses the static angularProviderFactory property on each provider class for extensibility
|
|
41
|
+
*/
|
|
42
|
+
static getProviderAngularServices(type: string, environment: any): any[];
|
|
43
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AngularAuthProviderFactory, never>;
|
|
44
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AngularAuthProviderFactory>;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=AngularAuthProviderFactory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AngularAuthProviderFactory.d.ts","sourceRoot":"","sources":["../../src/lib/AngularAuthProviderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGrD,OAAO,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;;AAElF;;;GAGG;AACH,qBAGa,0BAA0B;IAKzB,OAAO,CAAC,QAAQ;IAJ5B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA6B;IACpD,OAAO,CAAC,SAAS,CAAgD;IACjE,OAAO,CAAC,eAAe,CAA+B;gBAElC,QAAQ,EAAE,QAAQ;IAItC;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,0BAA0B;IAOhD;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,yBAAyB,GAAG,oBAAoB;IAmCvE;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS;IAI3D;;OAEG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAO9B;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIvC;;OAEG;IACH,cAAc,IAAI,IAAI;IAKtB;;;OAGG;IACH,MAAM,CAAC,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,GAAG,GAAG,EAAE;yCA7F7D,0BAA0B;6CAA1B,0BAA0B;CA6HtC"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { MJGlobal } from '@memberjunction/global';
|
|
3
|
+
import { MJAuthBase } from './mjexplorer-auth-base.service';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
/**
|
|
6
|
+
* Factory for creating Angular authentication providers
|
|
7
|
+
* Uses MJGlobal ClassFactory pattern for extensibility
|
|
8
|
+
*/
|
|
9
|
+
export class AngularAuthProviderFactory {
|
|
10
|
+
injector;
|
|
11
|
+
static instance;
|
|
12
|
+
providers = new Map();
|
|
13
|
+
providerConfigs = new Map();
|
|
14
|
+
constructor(injector) {
|
|
15
|
+
this.injector = injector;
|
|
16
|
+
AngularAuthProviderFactory.instance = this;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Get singleton instance
|
|
20
|
+
*/
|
|
21
|
+
static getInstance() {
|
|
22
|
+
if (!AngularAuthProviderFactory.instance) {
|
|
23
|
+
throw new Error('AngularAuthProviderFactory not initialized. Ensure it is provided in your module.');
|
|
24
|
+
}
|
|
25
|
+
return AngularAuthProviderFactory.instance;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Create a provider based on configuration
|
|
29
|
+
*/
|
|
30
|
+
createProvider(config) {
|
|
31
|
+
const existingProvider = this.providers.get(config.type);
|
|
32
|
+
if (existingProvider) {
|
|
33
|
+
return existingProvider;
|
|
34
|
+
}
|
|
35
|
+
try {
|
|
36
|
+
// Use MJGlobal ClassFactory to create the provider instance
|
|
37
|
+
// Pass config as the first constructor argument
|
|
38
|
+
const provider = MJGlobal.Instance.ClassFactory.CreateInstance(MJAuthBase, config.type, config // Pass config as constructor argument, not injector
|
|
39
|
+
);
|
|
40
|
+
if (!provider) {
|
|
41
|
+
throw new Error(`No provider registered for type: ${config.type}. Available types: ${this.getRegisteredTypes().join(', ')}`);
|
|
42
|
+
}
|
|
43
|
+
// Validate the configuration
|
|
44
|
+
if (!provider.validateConfig(config)) {
|
|
45
|
+
throw new Error(`Invalid configuration for provider type: ${config.type}`);
|
|
46
|
+
}
|
|
47
|
+
// Store the provider instance
|
|
48
|
+
this.providers.set(config.type, provider);
|
|
49
|
+
this.providerConfigs.set(config.type, config);
|
|
50
|
+
return provider;
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
console.error(`Failed to create auth provider for type ${config.type}:`, error);
|
|
54
|
+
throw error;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Get a provider by type
|
|
59
|
+
*/
|
|
60
|
+
getProvider(type) {
|
|
61
|
+
return this.providers.get(type);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Get all registered provider types
|
|
65
|
+
*/
|
|
66
|
+
getRegisteredTypes() {
|
|
67
|
+
const registrations = MJGlobal.Instance.ClassFactory.GetRegistrationsByRootClass(MJAuthBase);
|
|
68
|
+
const types = registrations.map(reg => reg.Key);
|
|
69
|
+
// Return unique types only, as multiple classes can be registered with the same key
|
|
70
|
+
return [...new Set(types)];
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Check if a provider type is registered
|
|
74
|
+
*/
|
|
75
|
+
isTypeRegistered(type) {
|
|
76
|
+
return this.getRegisteredTypes().includes(type);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Clear all providers (useful for testing)
|
|
80
|
+
*/
|
|
81
|
+
clearProviders() {
|
|
82
|
+
this.providers.clear();
|
|
83
|
+
this.providerConfigs.clear();
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Get provider-specific Angular services that need to be injected
|
|
87
|
+
* This uses the static angularProviderFactory property on each provider class for extensibility
|
|
88
|
+
*/
|
|
89
|
+
static getProviderAngularServices(type, environment) {
|
|
90
|
+
const normalizedType = type?.toLowerCase();
|
|
91
|
+
// Get the provider class from the ClassFactory
|
|
92
|
+
const registration = MJGlobal.Instance.ClassFactory.GetRegistration(MJAuthBase, normalizedType);
|
|
93
|
+
const providerClass = registration?.SubClass;
|
|
94
|
+
if (!providerClass) {
|
|
95
|
+
console.warn(`No provider class registered for type: ${type}`);
|
|
96
|
+
return [];
|
|
97
|
+
}
|
|
98
|
+
// Check if the provider class has the factory property (new pattern)
|
|
99
|
+
if (providerClass.angularProviderFactory) {
|
|
100
|
+
// Call the factory function to get the required providers
|
|
101
|
+
return providerClass.angularProviderFactory(environment);
|
|
102
|
+
}
|
|
103
|
+
// Fallback to old method name for backward compatibility
|
|
104
|
+
else if (typeof providerClass.getRequiredAngularProviders === 'function') {
|
|
105
|
+
console.warn(`Provider ${type} uses deprecated getRequiredAngularProviders method. Please update to use angularProviderFactory property.`);
|
|
106
|
+
return providerClass.getRequiredAngularProviders(environment);
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
// Provider doesn't define required Angular services (might not need any)
|
|
110
|
+
console.log(`Provider ${type} does not define angularProviderFactory property`);
|
|
111
|
+
return [];
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
static ɵfac = function AngularAuthProviderFactory_Factory(t) { return new (t || AngularAuthProviderFactory)(i0.ɵɵinject(i0.Injector)); };
|
|
115
|
+
static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: AngularAuthProviderFactory, factory: AngularAuthProviderFactory.ɵfac, providedIn: 'root' });
|
|
116
|
+
}
|
|
117
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AngularAuthProviderFactory, [{
|
|
118
|
+
type: Injectable,
|
|
119
|
+
args: [{
|
|
120
|
+
providedIn: 'root'
|
|
121
|
+
}]
|
|
122
|
+
}], () => [{ type: i0.Injector }], null); })();
|
|
123
|
+
//# sourceMappingURL=AngularAuthProviderFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AngularAuthProviderFactory.js","sourceRoot":"","sources":["../../src/lib/AngularAuthProviderFactory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
2
|
+
import { AuthProviderConfig } from '@memberjunction/core';
|
|
3
|
+
export interface AngularAuthProviderConfig extends AuthProviderConfig {
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Interface for Angular authentication providers
|
|
7
|
+
* Mirrors the backend IAuthProvider pattern for consistency
|
|
8
|
+
*/
|
|
9
|
+
export interface IAngularAuthProvider {
|
|
10
|
+
/**
|
|
11
|
+
* Provider type identifier (e.g., 'msal', 'auth0', 'okta')
|
|
12
|
+
*/
|
|
13
|
+
type: string;
|
|
14
|
+
/**
|
|
15
|
+
* Initialize the authentication provider
|
|
16
|
+
*/
|
|
17
|
+
initialize(): Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* Login the user
|
|
20
|
+
*/
|
|
21
|
+
login(options?: any): Observable<void> | Promise<void>;
|
|
22
|
+
/**
|
|
23
|
+
* Logout the user
|
|
24
|
+
*/
|
|
25
|
+
logout(): Promise<void>;
|
|
26
|
+
/**
|
|
27
|
+
* Check if user is authenticated
|
|
28
|
+
*/
|
|
29
|
+
isAuthenticated(): Observable<boolean>;
|
|
30
|
+
/**
|
|
31
|
+
* Get the current access token
|
|
32
|
+
*/
|
|
33
|
+
getToken(): Promise<string | null>;
|
|
34
|
+
/**
|
|
35
|
+
* Get user profile information
|
|
36
|
+
*/
|
|
37
|
+
getUserProfile(): Observable<any>;
|
|
38
|
+
/**
|
|
39
|
+
* Get user email
|
|
40
|
+
*/
|
|
41
|
+
getUserEmail(): Observable<string>;
|
|
42
|
+
/**
|
|
43
|
+
* Handle callback after redirect
|
|
44
|
+
*/
|
|
45
|
+
handleCallback(): Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* Get provider-specific configuration requirements
|
|
48
|
+
*/
|
|
49
|
+
getRequiredConfig(): string[];
|
|
50
|
+
/**
|
|
51
|
+
* Validate provider configuration
|
|
52
|
+
*/
|
|
53
|
+
validateConfig(config: any): boolean;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=IAuthProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IAuthProvider.d.ts","sourceRoot":"","sources":["../../src/lib/IAuthProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,MAAM,WAAW,yBAA0B,SAAQ,kBAAkB;CAEpE;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvD;;OAEG;IACH,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAExB;;OAEG;IACH,eAAe,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;IAEvC;;OAEG;IACH,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAEnC;;OAEG;IACH,cAAc,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;IAElC;;OAEG;IACH,YAAY,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IAEnC;;OAEG;IACH,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhC;;OAEG;IACH,iBAAiB,IAAI,MAAM,EAAE,CAAC;IAE9B;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC;CACtC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IAuthProvider.js","sourceRoot":"","sources":["../../src/lib/IAuthProvider.ts"],"names":[],"mappings":""}
|
|
@@ -1,19 +1,17 @@
|
|
|
1
1
|
import { ModuleWithProviders } from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { RedirectComponent } from './redirect.component';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
export declare const RedirectComponent: typeof MsalRedirectComponent;
|
|
4
|
+
import * as i1 from "./redirect.component";
|
|
5
|
+
import * as i2 from "@angular/common";
|
|
6
|
+
export { RedirectComponent };
|
|
7
|
+
/**
|
|
8
|
+
* Extensible authentication module that supports N providers
|
|
9
|
+
* Uses MJGlobal ClassFactory pattern for dynamic provider creation
|
|
10
|
+
*/
|
|
12
11
|
export declare class AuthServicesModule {
|
|
13
|
-
static forRoot(environment:
|
|
12
|
+
static forRoot(environment: any): ModuleWithProviders<AuthServicesModule>;
|
|
14
13
|
static ɵfac: i0.ɵɵFactoryDeclaration<AuthServicesModule, never>;
|
|
15
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<AuthServicesModule,
|
|
14
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<AuthServicesModule, [typeof i1.RedirectComponent], [typeof i2.CommonModule], [typeof i1.RedirectComponent]>;
|
|
16
15
|
static ɵinj: i0.ɵɵInjectorDeclaration<AuthServicesModule>;
|
|
17
16
|
}
|
|
18
|
-
export {};
|
|
19
17
|
//# sourceMappingURL=auth-services.module.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-services.module.d.ts","sourceRoot":"","sources":["../../src/lib/auth-services.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,mBAAmB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"auth-services.module.d.ts","sourceRoot":"","sources":["../../src/lib/auth-services.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAO9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;;;;AAGzD,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAa7B;;;GAGG;AACH,qBAKa,kBAAkB;IAC7B,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,GAAG,mBAAmB,CAAC,kBAAkB,CAAC;yCAD9D,kBAAkB;0CAAlB,kBAAkB;0CAAlB,kBAAkB;CA4C9B"}
|
|
@@ -1,89 +1,72 @@
|
|
|
1
1
|
import { NgModule } from '@angular/core';
|
|
2
|
-
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
3
|
import { MJAuthBase } from './mjexplorer-auth-base.service';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
import {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
//***********************************************************
|
|
13
|
-
import { MSAL_GUARD_CONFIG, MSAL_INSTANCE, MSAL_INTERCEPTOR_CONFIG, MsalBroadcastService, MsalGuard, MsalRedirectComponent, MsalService, } from '@azure/msal-angular';
|
|
14
|
-
import { InteractionType, PublicClientApplication } from '@azure/msal-browser';
|
|
4
|
+
import { AngularAuthProviderFactory } from './AngularAuthProviderFactory';
|
|
5
|
+
import { MJGlobal } from '@memberjunction/global';
|
|
6
|
+
// Import our generic redirect component
|
|
7
|
+
import { RedirectComponent } from './redirect.component';
|
|
8
|
+
// Import restored providers and load them to prevent tree-shaking
|
|
9
|
+
import { LoadMJMSALProvider } from './providers/mjexplorer-msal-provider.service';
|
|
10
|
+
import { LoadMJAuth0Provider } from './providers/mjexplorer-auth0-provider.service';
|
|
11
|
+
import { LoadMJOktaProvider } from './providers/mjexplorer-okta-provider.service';
|
|
15
12
|
import * as i0 from "@angular/core";
|
|
16
|
-
|
|
13
|
+
// Export the generic redirect component for backward compatibility
|
|
14
|
+
export { RedirectComponent };
|
|
15
|
+
// Load all providers to prevent tree-shaking
|
|
16
|
+
// These functions ensure the classes are included in the bundle
|
|
17
|
+
LoadMJMSALProvider();
|
|
18
|
+
LoadMJAuth0Provider();
|
|
19
|
+
LoadMJOktaProvider();
|
|
20
|
+
/**
|
|
21
|
+
* Extensible authentication module that supports N providers
|
|
22
|
+
* Uses MJGlobal ClassFactory pattern for dynamic provider creation
|
|
23
|
+
*/
|
|
17
24
|
export class AuthServicesModule {
|
|
18
25
|
static forRoot(environment) {
|
|
26
|
+
const providers = [];
|
|
27
|
+
const authType = environment.AUTH_TYPE?.toLowerCase();
|
|
28
|
+
if (!authType) {
|
|
29
|
+
console.error('No AUTH_TYPE specified in environment');
|
|
30
|
+
return {
|
|
31
|
+
ngModule: AuthServicesModule,
|
|
32
|
+
providers: []
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
// Use the factory to get provider-specific Angular services
|
|
36
|
+
// This uses the static method on each provider class for extensibility
|
|
37
|
+
const angularServices = AngularAuthProviderFactory.getProviderAngularServices(authType, environment);
|
|
38
|
+
providers.push(...angularServices);
|
|
39
|
+
// Get the provider class from ClassFactory for extensibility
|
|
40
|
+
const registration = MJGlobal.Instance.ClassFactory.GetRegistration(MJAuthBase, authType);
|
|
41
|
+
const providerClass = registration?.SubClass;
|
|
42
|
+
if (providerClass) {
|
|
43
|
+
// Add the provider itself
|
|
44
|
+
providers.push({
|
|
45
|
+
provide: MJAuthBase,
|
|
46
|
+
useClass: providerClass
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
console.error(`No provider class registered for auth type: ${authType}`);
|
|
51
|
+
}
|
|
52
|
+
// Add the factory itself
|
|
53
|
+
providers.push(AngularAuthProviderFactory);
|
|
19
54
|
return {
|
|
20
55
|
ngModule: AuthServicesModule,
|
|
21
|
-
providers
|
|
22
|
-
environment.AUTH_TYPE === 'auth0'
|
|
23
|
-
? [
|
|
24
|
-
AuthService,
|
|
25
|
-
AuthGuard,
|
|
26
|
-
{
|
|
27
|
-
provide: AuthConfigService,
|
|
28
|
-
useValue: {
|
|
29
|
-
domain: environment.AUTH0_DOMAIN,
|
|
30
|
-
clientId: environment.AUTH0_CLIENTID,
|
|
31
|
-
authorizationParams: {
|
|
32
|
-
redirect_uri: window.location.origin,
|
|
33
|
-
},
|
|
34
|
-
cacheLocation: 'localstorage',
|
|
35
|
-
},
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
provide: Auth0ClientService,
|
|
39
|
-
useFactory: Auth0ClientFactory.createClient,
|
|
40
|
-
deps: [AuthClientConfig],
|
|
41
|
-
},
|
|
42
|
-
]
|
|
43
|
-
: [
|
|
44
|
-
{
|
|
45
|
-
provide: MSAL_INSTANCE,
|
|
46
|
-
useValue: new PublicClientApplication({
|
|
47
|
-
auth: {
|
|
48
|
-
clientId: environment.CLIENT_ID,
|
|
49
|
-
authority: environment.CLIENT_AUTHORITY,
|
|
50
|
-
redirectUri: window.location.origin,
|
|
51
|
-
},
|
|
52
|
-
cache: {
|
|
53
|
-
cacheLocation: 'localStorage',
|
|
54
|
-
storeAuthStateInCookie: false, // Could move this to environment config - set to true for Internet Explorer 11
|
|
55
|
-
},
|
|
56
|
-
}),
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
provide: MSAL_GUARD_CONFIG,
|
|
60
|
-
useValue: {
|
|
61
|
-
interactionType: InteractionType.Redirect, // MSAL Guard Configuration
|
|
62
|
-
authRequest: {
|
|
63
|
-
scopes: ['User.Read'],
|
|
64
|
-
},
|
|
65
|
-
},
|
|
66
|
-
},
|
|
67
|
-
{
|
|
68
|
-
provide: MSAL_INTERCEPTOR_CONFIG,
|
|
69
|
-
useValue: {
|
|
70
|
-
interactionType: InteractionType.Redirect, // MSAL Interceptor Configuration
|
|
71
|
-
protectedResourceMap: new Map([['https://graph.microsoft.com/v1.0/me', ['user.read']]]),
|
|
72
|
-
},
|
|
73
|
-
},
|
|
74
|
-
MsalService,
|
|
75
|
-
MsalGuard,
|
|
76
|
-
MsalBroadcastService,
|
|
77
|
-
],
|
|
78
|
-
{ provide: MJAuthBase, useClass: environment.AUTH_TYPE === 'auth0' ? MJAuth0Provider : MJMSALProvider },
|
|
79
|
-
],
|
|
56
|
+
providers
|
|
80
57
|
};
|
|
81
58
|
}
|
|
82
59
|
static ɵfac = function AuthServicesModule_Factory(t) { return new (t || AuthServicesModule)(); };
|
|
83
60
|
static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: AuthServicesModule });
|
|
84
|
-
static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
|
|
61
|
+
static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonModule] });
|
|
85
62
|
}
|
|
86
63
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AuthServicesModule, [{
|
|
87
|
-
type: NgModule
|
|
64
|
+
type: NgModule,
|
|
65
|
+
args: [{
|
|
66
|
+
imports: [CommonModule],
|
|
67
|
+
declarations: [RedirectComponent],
|
|
68
|
+
exports: [RedirectComponent]
|
|
69
|
+
}]
|
|
88
70
|
}], null, null); })();
|
|
71
|
+
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(AuthServicesModule, { declarations: [RedirectComponent], imports: [CommonModule], exports: [RedirectComponent] }); })();
|
|
89
72
|
//# sourceMappingURL=auth-services.module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-services.module.js","sourceRoot":"","sources":["../../src/lib/auth-services.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAuB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"auth-services.module.js","sourceRoot":"","sources":["../../src/lib/auth-services.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAuB,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAElD,wCAAwC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAKzD,kEAAkE;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;;AANlF,mEAAmE;AACnE,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAO7B,6CAA6C;AAC7C,gEAAgE;AAChE,kBAAkB,EAAE,CAAC;AACrB,mBAAmB,EAAE,CAAC;AACtB,kBAAkB,EAAE,CAAC;AAErB;;;GAGG;AAMH,MAAM,OAAO,kBAAkB;IAC7B,MAAM,CAAC,OAAO,CAAC,WAAgB;QAE7B,MAAM,SAAS,GAAU,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,WAAW,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC;QAEtD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;YACvD,OAAO;gBACL,QAAQ,EAAE,kBAAkB;gBAC5B,SAAS,EAAE,EAAE;aACd,CAAC;QACJ,CAAC;QAED,4DAA4D;QAC5D,uEAAuE;QACvE,MAAM,eAAe,GAAG,0BAA0B,CAAC,0BAA0B,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QACrG,SAAS,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,CAAC;QAEnC,6DAA6D;QAC7D,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,eAAe,CACjE,UAAU,EACV,QAAQ,CACT,CAAC;QACF,MAAM,aAAa,GAAG,YAAY,EAAE,QAAQ,CAAC;QAE7C,IAAI,aAAa,EAAE,CAAC;YAClB,0BAA0B;YAC1B,SAAS,CAAC,IAAI,CAAC;gBACb,OAAO,EAAE,UAAU;gBACnB,QAAQ,EAAE,aAAa;aACxB,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,+CAA+C,QAAQ,EAAE,CAAC,CAAC;QAC3E,CAAC;QAED,yBAAyB;QACzB,SAAS,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAE3C,OAAO;YACL,QAAQ,EAAE,kBAAkB;YAC5B,SAAS;SACV,CAAC;IACJ,CAAC;4EA3CU,kBAAkB;4DAAlB,kBAAkB;gEAJnB,YAAY;;iFAIX,kBAAkB;cAL9B,QAAQ;eAAC;gBACR,OAAO,EAAE,CAAC,YAAY,CAAC;gBACvB,YAAY,EAAE,CAAC,iBAAiB,CAAC;gBACjC,OAAO,EAAE,CAAC,iBAAiB,CAAC;aAC7B;;wFACY,kBAAkB,mBAHd,iBAAiB,aADtB,YAAY,aAEZ,iBAAiB"}
|
|
@@ -1,16 +1,101 @@
|
|
|
1
|
-
import { Observable } from 'rxjs';
|
|
1
|
+
import { Observable, BehaviorSubject } from 'rxjs';
|
|
2
|
+
import { IAngularAuthProvider, AngularAuthProviderConfig } from './IAuthProvider';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
abstract
|
|
13
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Base class for Angular authentication providers
|
|
6
|
+
* Provides common functionality and enforces the provider interface
|
|
7
|
+
*/
|
|
8
|
+
export declare abstract class MJAuthBase implements IAngularAuthProvider {
|
|
9
|
+
protected config: AngularAuthProviderConfig;
|
|
10
|
+
protected isAuthenticated$: BehaviorSubject<boolean>;
|
|
11
|
+
protected userProfile$: BehaviorSubject<any>;
|
|
12
|
+
protected userEmail$: BehaviorSubject<string>;
|
|
13
|
+
abstract type: string;
|
|
14
|
+
constructor(config: AngularAuthProviderConfig);
|
|
15
|
+
/**
|
|
16
|
+
* Initialize the authentication provider
|
|
17
|
+
* Override in subclasses to setup provider-specific initialization
|
|
18
|
+
*/
|
|
19
|
+
abstract initialize(): Promise<void>;
|
|
20
|
+
/**
|
|
21
|
+
* Login the user - internal implementation
|
|
22
|
+
* Override to implement provider-specific login flow
|
|
23
|
+
*/
|
|
24
|
+
protected abstract loginInternal(options?: any): Promise<void>;
|
|
25
|
+
/**
|
|
26
|
+
* Login the user - public API that returns Observable for backward compatibility
|
|
27
|
+
*/
|
|
28
|
+
login(options?: any): Observable<void>;
|
|
29
|
+
/**
|
|
30
|
+
* Logout the user
|
|
31
|
+
* Override to implement provider-specific logout flow
|
|
32
|
+
*/
|
|
33
|
+
abstract logout(): Promise<void>;
|
|
34
|
+
/**
|
|
35
|
+
* Get the current access token
|
|
36
|
+
* Override to retrieve token from provider-specific storage
|
|
37
|
+
*/
|
|
38
|
+
abstract getToken(): Promise<string | null>;
|
|
39
|
+
/**
|
|
40
|
+
* Handle callback after redirect
|
|
41
|
+
* Override to process provider-specific callback logic
|
|
42
|
+
*/
|
|
43
|
+
abstract handleCallback(): Promise<void>;
|
|
44
|
+
/**
|
|
45
|
+
* Check if user is authenticated
|
|
46
|
+
*/
|
|
47
|
+
isAuthenticated(): Observable<boolean>;
|
|
48
|
+
/**
|
|
49
|
+
* Get user profile information
|
|
50
|
+
*/
|
|
51
|
+
getUserProfile(): Observable<any>;
|
|
52
|
+
/**
|
|
53
|
+
* Get user email
|
|
54
|
+
*/
|
|
55
|
+
getUserEmail(): Observable<string>;
|
|
56
|
+
/**
|
|
57
|
+
* Get provider-specific configuration requirements
|
|
58
|
+
* Override to specify required config fields
|
|
59
|
+
*/
|
|
60
|
+
getRequiredConfig(): string[];
|
|
61
|
+
/**
|
|
62
|
+
* Validate provider configuration
|
|
63
|
+
* Override to add provider-specific validation
|
|
64
|
+
*/
|
|
65
|
+
validateConfig(config: any): boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Helper method to update authentication state
|
|
68
|
+
*/
|
|
69
|
+
protected updateAuthState(isAuthenticated: boolean): void;
|
|
70
|
+
/**
|
|
71
|
+
* Helper method to update user profile
|
|
72
|
+
*/
|
|
73
|
+
protected updateUserProfile(profile: any): void;
|
|
74
|
+
/**
|
|
75
|
+
* Legacy property for authentication state
|
|
76
|
+
*/
|
|
77
|
+
get authenticated(): boolean;
|
|
78
|
+
/**
|
|
79
|
+
* Legacy setter for authentication state
|
|
80
|
+
* Used by MJExplorer for backward compatibility
|
|
81
|
+
*/
|
|
82
|
+
set authenticated(value: boolean);
|
|
83
|
+
/**
|
|
84
|
+
* Legacy method to get user
|
|
85
|
+
*/
|
|
86
|
+
getUser(): Promise<any>;
|
|
87
|
+
/**
|
|
88
|
+
* Legacy method to get user claims
|
|
89
|
+
*/
|
|
90
|
+
getUserClaims(): Promise<Observable<any>>;
|
|
91
|
+
/**
|
|
92
|
+
* Legacy method to check expired token error
|
|
93
|
+
*/
|
|
94
|
+
checkExpiredTokenError(error: string): boolean;
|
|
95
|
+
/**
|
|
96
|
+
* Legacy refresh method
|
|
97
|
+
*/
|
|
98
|
+
refresh(): Promise<Observable<any>>;
|
|
14
99
|
static ɵfac: i0.ɵɵFactoryDeclaration<MJAuthBase, never>;
|
|
15
100
|
static ɵprov: i0.ɵɵInjectableDeclaration<MJAuthBase>;
|
|
16
101
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mjexplorer-auth-base.service.d.ts","sourceRoot":"","sources":["../../src/lib/mjexplorer-auth-base.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;;
|
|
1
|
+
{"version":3,"file":"mjexplorer-auth-base.service.d.ts","sourceRoot":"","sources":["../../src/lib/mjexplorer-auth-base.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAQ,MAAM,MAAM,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;;AAElF;;;GAGG;AACH,8BACsB,UAAW,YAAW,oBAAoB;IAC9D,SAAS,CAAC,MAAM,EAAE,yBAAyB,CAAC;IAC5C,SAAS,CAAC,gBAAgB,2BAAuC;IACjE,SAAS,CAAC,YAAY,uBAAkC;IACxD,SAAS,CAAC,UAAU,0BAAmC;IAEvD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAEV,MAAM,EAAE,yBAAyB;IAI7C;;;OAGG;IACH,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAEpC;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAE9D;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC;IAItC;;;OAGG;IACH,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAEhC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAE3C;;;OAGG;IACH,QAAQ,CAAC,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAExC;;OAEG;IACH,eAAe,IAAI,UAAU,CAAC,OAAO,CAAC;IAItC;;OAEG;IACH,cAAc,IAAI,UAAU,CAAC,GAAG,CAAC;IAIjC;;OAEG;IACH,YAAY,IAAI,UAAU,CAAC,MAAM,CAAC;IAIlC;;;OAGG;IACH,iBAAiB,IAAI,MAAM,EAAE;IAI7B;;;OAGG;IACH,cAAc,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO;IAKpC;;OAEG;IACH,SAAS,CAAC,eAAe,CAAC,eAAe,EAAE,OAAO,GAAG,IAAI;IAIzD;;OAEG;IACH,SAAS,CAAC,iBAAiB,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI;IAS/C;;OAEG;IACH,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED;;;OAGG;IACH,IAAI,aAAa,CAAC,KAAK,EAAE,OAAO,EAE/B;IAED;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC;IAI7B;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAI/C;;OAEG;IACH,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAO9C;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;yCApJrB,UAAU;6CAAV,UAAU;CAyJ/B"}
|