@memberjunction/server 2.90.0 → 2.91.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.
Files changed (75) hide show
  1. package/dist/auth/AuthProviderFactory.d.ts +24 -0
  2. package/dist/auth/AuthProviderFactory.d.ts.map +1 -0
  3. package/dist/auth/AuthProviderFactory.js +82 -0
  4. package/dist/auth/AuthProviderFactory.js.map +1 -0
  5. package/dist/auth/BaseAuthProvider.d.ts +18 -0
  6. package/dist/auth/BaseAuthProvider.d.ts.map +1 -0
  7. package/dist/auth/BaseAuthProvider.js +42 -0
  8. package/dist/auth/BaseAuthProvider.js.map +1 -0
  9. package/dist/auth/IAuthProvider.d.ts +13 -0
  10. package/dist/auth/IAuthProvider.d.ts.map +1 -0
  11. package/dist/auth/IAuthProvider.js +2 -0
  12. package/dist/auth/IAuthProvider.js.map +1 -0
  13. package/dist/auth/__tests__/backward-compatibility.test.d.ts +2 -0
  14. package/dist/auth/__tests__/backward-compatibility.test.d.ts.map +1 -0
  15. package/dist/auth/__tests__/backward-compatibility.test.js +135 -0
  16. package/dist/auth/__tests__/backward-compatibility.test.js.map +1 -0
  17. package/dist/auth/index.d.ts +22 -7
  18. package/dist/auth/index.d.ts.map +1 -1
  19. package/dist/auth/index.js +65 -32
  20. package/dist/auth/index.js.map +1 -1
  21. package/dist/auth/initializeProviders.d.ts +2 -0
  22. package/dist/auth/initializeProviders.d.ts.map +1 -0
  23. package/dist/auth/initializeProviders.js +23 -0
  24. package/dist/auth/initializeProviders.js.map +1 -0
  25. package/dist/auth/providers/Auth0Provider.d.ts +9 -0
  26. package/dist/auth/providers/Auth0Provider.d.ts.map +1 -0
  27. package/dist/auth/providers/Auth0Provider.js +42 -0
  28. package/dist/auth/providers/Auth0Provider.js.map +1 -0
  29. package/dist/auth/providers/CognitoProvider.d.ts +9 -0
  30. package/dist/auth/providers/CognitoProvider.d.ts.map +1 -0
  31. package/dist/auth/providers/CognitoProvider.js +46 -0
  32. package/dist/auth/providers/CognitoProvider.js.map +1 -0
  33. package/dist/auth/providers/GoogleProvider.d.ts +9 -0
  34. package/dist/auth/providers/GoogleProvider.d.ts.map +1 -0
  35. package/dist/auth/providers/GoogleProvider.js +41 -0
  36. package/dist/auth/providers/GoogleProvider.js.map +1 -0
  37. package/dist/auth/providers/MSALProvider.d.ts +9 -0
  38. package/dist/auth/providers/MSALProvider.d.ts.map +1 -0
  39. package/dist/auth/providers/MSALProvider.js +42 -0
  40. package/dist/auth/providers/MSALProvider.js.map +1 -0
  41. package/dist/auth/providers/OktaProvider.d.ts +9 -0
  42. package/dist/auth/providers/OktaProvider.d.ts.map +1 -0
  43. package/dist/auth/providers/OktaProvider.js +42 -0
  44. package/dist/auth/providers/OktaProvider.js.map +1 -0
  45. package/dist/config.d.ts +97 -21
  46. package/dist/config.d.ts.map +1 -1
  47. package/dist/config.js +13 -6
  48. package/dist/config.js.map +1 -1
  49. package/dist/context.d.ts.map +1 -1
  50. package/dist/context.js +25 -17
  51. package/dist/context.js.map +1 -1
  52. package/dist/generated/generated.d.ts +3 -0
  53. package/dist/generated/generated.d.ts.map +1 -1
  54. package/dist/generated/generated.js +16 -0
  55. package/dist/generated/generated.js.map +1 -1
  56. package/dist/generic/ResolverBase.d.ts +1 -1
  57. package/dist/generic/ResolverBase.d.ts.map +1 -1
  58. package/dist/generic/ResolverBase.js +5 -4
  59. package/dist/generic/ResolverBase.js.map +1 -1
  60. package/package.json +39 -39
  61. package/src/auth/AuthProviderFactory.ts +152 -0
  62. package/src/auth/BaseAuthProvider.ts +71 -0
  63. package/src/auth/IAuthProvider.ts +49 -0
  64. package/src/auth/__tests__/backward-compatibility.test.ts +183 -0
  65. package/src/auth/index.ts +104 -36
  66. package/src/auth/initializeProviders.ts +31 -0
  67. package/src/auth/providers/Auth0Provider.ts +45 -0
  68. package/src/auth/providers/CognitoProvider.ts +50 -0
  69. package/src/auth/providers/GoogleProvider.ts +45 -0
  70. package/src/auth/providers/MSALProvider.ts +45 -0
  71. package/src/auth/providers/OktaProvider.ts +46 -0
  72. package/src/config.ts +14 -10
  73. package/src/context.ts +40 -17
  74. package/src/generated/generated.ts +10 -0
  75. package/src/generic/ResolverBase.ts +9 -4
@@ -20,7 +20,7 @@ export declare class ResolverBase {
20
20
  private static _priorEmittedData;
21
21
  protected EmitCloudEvent({ component, event, eventCode, args }: MJEvent): Promise<void>;
22
22
  protected CheckUserReadPermissions(entityName: string, userPayload: UserPayload | null): void;
23
- protected RunViewGenericInternal(provider: DatabaseProviderBase, viewInfo: UserViewEntityExtended, extraFilter: string, orderBy: string, userSearchString: string, excludeUserViewRunID: string | undefined, overrideExcludeFilter: string | undefined, saveViewResults: boolean | undefined, fields: string[] | undefined, ignoreMaxRows: boolean | undefined, excludeDataFromAllPriorViewRuns: boolean | undefined, forceAuditLog: boolean | undefined, auditLogDescription: string | undefined, resultType: string | undefined, userPayload: UserPayload | null, maxRows: number | undefined): Promise<RunViewResult<any>>;
23
+ protected RunViewGenericInternal(provider: DatabaseProviderBase, viewInfo: UserViewEntityExtended, extraFilter: string, orderBy: string, userSearchString: string, excludeUserViewRunID: string | undefined, overrideExcludeFilter: string | undefined, saveViewResults: boolean | undefined, fields: string[] | undefined, ignoreMaxRows: boolean | undefined, excludeDataFromAllPriorViewRuns: boolean | undefined, forceAuditLog: boolean | undefined, auditLogDescription: string | undefined, resultType: string | undefined, userPayload: UserPayload | null, maxRows: number | undefined, startRow: number | undefined): Promise<RunViewResult<any>>;
24
24
  protected RunViewsGenericInternal(params: RunViewGenericParams[]): Promise<RunViewResult[]>;
25
25
  protected createRecordAccessAuditLogRecord(provider: DatabaseProviderBase, userPayload: UserPayload, entityName: string, recordId: any): Promise<any>;
26
26
  protected getRowLevelSecurityWhereClause(provider: DatabaseProviderBase, entityName: string, userPayload: UserPayload, type: EntityPermissionType, returnPrefix: string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"ResolverBase.d.ts","sourceRoot":"","sources":["../../src/generic/ResolverBase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ResolverBase.d.ts","sourceRoot":"","sources":["../../src/generic/ResolverBase.ts"],"names":[],"mappings":"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"}
@@ -80,7 +80,7 @@ export class ResolverBase {
80
80
  }, userPayload.userRecord);
81
81
  if (result && result.Success && result.Results.length > 0) {
82
82
  const viewInfo = result.Results[0];
83
- return this.RunViewGenericInternal(provider, viewInfo, viewInput.ExtraFilter, viewInput.OrderBy, viewInput.UserSearchString, viewInput.ExcludeUserViewRunID, viewInput.OverrideExcludeFilter, viewInput.SaveViewResults, viewInput.Fields, viewInput.IgnoreMaxRows, viewInput.ExcludeDataFromAllPriorViewRuns, viewInput.ForceAuditLog, viewInput.AuditLogDescription, viewInput.ResultType, userPayload, viewInput.MaxRows);
83
+ return this.RunViewGenericInternal(provider, viewInfo, viewInput.ExtraFilter, viewInput.OrderBy, viewInput.UserSearchString, viewInput.ExcludeUserViewRunID, viewInput.OverrideExcludeFilter, viewInput.SaveViewResults, viewInput.Fields, viewInput.IgnoreMaxRows, viewInput.ExcludeDataFromAllPriorViewRuns, viewInput.ForceAuditLog, viewInput.AuditLogDescription, viewInput.ResultType, userPayload, viewInput.MaxRows, viewInput.StartRow);
84
84
  }
85
85
  else {
86
86
  LogError(`RunViewByNameGeneric: View ${viewInput.ViewName} not found or no results returned`);
@@ -97,7 +97,7 @@ export class ResolverBase {
97
97
  const contextUser = this.GetUserFromPayload(userPayload);
98
98
  const viewInfo = await provider.GetEntityObject('User Views', contextUser);
99
99
  await viewInfo.Load(viewInput.ViewID);
100
- return this.RunViewGenericInternal(provider, viewInfo, viewInput.ExtraFilter, viewInput.OrderBy, viewInput.UserSearchString, viewInput.ExcludeUserViewRunID, viewInput.OverrideExcludeFilter, viewInput.SaveViewResults, viewInput.Fields, viewInput.IgnoreMaxRows, viewInput.ExcludeDataFromAllPriorViewRuns, viewInput.ForceAuditLog, viewInput.AuditLogDescription, viewInput.ResultType, userPayload, viewInput.MaxRows);
100
+ return this.RunViewGenericInternal(provider, viewInfo, viewInput.ExtraFilter, viewInput.OrderBy, viewInput.UserSearchString, viewInput.ExcludeUserViewRunID, viewInput.OverrideExcludeFilter, viewInput.SaveViewResults, viewInput.Fields, viewInput.IgnoreMaxRows, viewInput.ExcludeDataFromAllPriorViewRuns, viewInput.ForceAuditLog, viewInput.AuditLogDescription, viewInput.ResultType, userPayload, viewInput.MaxRows, viewInput.StartRow);
101
101
  }
102
102
  catch (err) {
103
103
  console.log(err);
@@ -116,7 +116,7 @@ export class ResolverBase {
116
116
  EntityID: entity.ID,
117
117
  EntityBaseView: entity.BaseView,
118
118
  };
119
- return this.RunViewGenericInternal(provider, viewInfo, viewInput.ExtraFilter, viewInput.OrderBy, viewInput.UserSearchString, viewInput.ExcludeUserViewRunID, viewInput.OverrideExcludeFilter, false, viewInput.Fields, viewInput.IgnoreMaxRows, false, viewInput.ForceAuditLog, viewInput.AuditLogDescription, viewInput.ResultType, userPayload, viewInput.MaxRows);
119
+ return this.RunViewGenericInternal(provider, viewInfo, viewInput.ExtraFilter, viewInput.OrderBy, viewInput.UserSearchString, viewInput.ExcludeUserViewRunID, viewInput.OverrideExcludeFilter, false, viewInput.Fields, viewInput.IgnoreMaxRows, false, viewInput.ForceAuditLog, viewInput.AuditLogDescription, viewInput.ResultType, userPayload, viewInput.MaxRows, viewInput.StartRow);
120
120
  }
121
121
  catch (err) {
122
122
  console.log(err);
@@ -239,7 +239,7 @@ export class ResolverBase {
239
239
  throw new Error(`Entity not found in metadata`);
240
240
  }
241
241
  }
242
- async RunViewGenericInternal(provider, viewInfo, extraFilter, orderBy, userSearchString, excludeUserViewRunID, overrideExcludeFilter, saveViewResults, fields, ignoreMaxRows, excludeDataFromAllPriorViewRuns, forceAuditLog, auditLogDescription, resultType, userPayload, maxRows) {
242
+ async RunViewGenericInternal(provider, viewInfo, extraFilter, orderBy, userSearchString, excludeUserViewRunID, overrideExcludeFilter, saveViewResults, fields, ignoreMaxRows, excludeDataFromAllPriorViewRuns, forceAuditLog, auditLogDescription, resultType, userPayload, maxRows, startRow) {
243
243
  try {
244
244
  if (!viewInfo || !userPayload)
245
245
  return null;
@@ -277,6 +277,7 @@ export class ResolverBase {
277
277
  ExcludeDataFromAllPriorViewRuns: excludeDataFromAllPriorViewRuns,
278
278
  IgnoreMaxRows: ignoreMaxRows,
279
279
  MaxRows: maxRows,
280
+ StartRow: startRow,
280
281
  ForceAuditLog: forceAuditLog,
281
282
  AuditLogDescription: auditLogDescription,
282
283
  ResultType: rt,
@@ -1 +1 @@
1
- {"version":3,"file":"ResolverBase.js","sourceRoot":"","sources":["../../src/generic/ResolverBase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ResolverBase.js","sourceRoot":"","sources":["../../src/generic/ResolverBase.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memberjunction/server",
3
- "version": "2.90.0",
3
+ "version": "2.91.0",
4
4
  "description": "MemberJunction: This project provides API access via GraphQL to the common data store.",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./src/index.ts",
@@ -22,44 +22,44 @@
22
22
  "dependencies": {
23
23
  "@apollo/server": "^4.9.1",
24
24
  "@graphql-tools/utils": "^10.0.1",
25
- "@memberjunction/actions": "2.90.0",
26
- "@memberjunction/ai": "2.90.0",
27
- "@memberjunction/ai-core-plus": "2.90.0",
28
- "@memberjunction/ai-agents": "2.90.0",
29
- "@memberjunction/aiengine": "2.90.0",
30
- "@memberjunction/ai-prompts": "2.90.0",
31
- "@memberjunction/ai-agent-manager-actions": "2.90.0",
32
- "@memberjunction/ai-mistral": "2.90.0",
33
- "@memberjunction/ai-openai": "2.90.0",
34
- "@memberjunction/ai-anthropic": "2.90.0",
35
- "@memberjunction/ai-groq": "2.90.0",
36
- "@memberjunction/ai-cerebras": "2.90.0",
37
- "@memberjunction/ai-lmstudio": "2.90.0",
38
- "@memberjunction/ai-openrouter": "2.90.0",
39
- "@memberjunction/ai-ollama": "2.90.0",
40
- "@memberjunction/ai-vectors-pinecone": "2.90.0",
41
- "@memberjunction/ai-local-embeddings": "2.90.0",
42
- "@memberjunction/core": "2.90.0",
43
- "@memberjunction/core-actions": "2.90.0",
44
- "@memberjunction/actions-apollo": "2.90.0",
45
- "@memberjunction/actions-bizapps-accounting": "2.90.0",
46
- "@memberjunction/actions-bizapps-crm": "2.90.0",
47
- "@memberjunction/actions-bizapps-lms": "2.90.0",
48
- "@memberjunction/actions-bizapps-social": "2.90.0",
49
- "@memberjunction/core-entities": "2.90.0",
50
- "@memberjunction/core-entities-server": "2.90.0",
51
- "@memberjunction/data-context": "2.90.0",
52
- "@memberjunction/data-context-server": "2.90.0",
53
- "@memberjunction/doc-utils": "2.90.0",
54
- "@memberjunction/entity-communications-server": "2.90.0",
55
- "@memberjunction/external-change-detection": "2.90.0",
56
- "@memberjunction/global": "2.90.0",
57
- "@memberjunction/graphql-dataprovider": "2.90.0",
58
- "@memberjunction/queue": "2.90.0",
59
- "@memberjunction/skip-types": "2.90.0",
60
- "@memberjunction/sqlserver-dataprovider": "2.90.0",
61
- "@memberjunction/storage": "2.90.0",
62
- "@memberjunction/templates": "2.90.0",
25
+ "@memberjunction/actions": "2.91.0",
26
+ "@memberjunction/ai": "2.91.0",
27
+ "@memberjunction/ai-core-plus": "2.91.0",
28
+ "@memberjunction/ai-agents": "2.91.0",
29
+ "@memberjunction/aiengine": "2.91.0",
30
+ "@memberjunction/ai-prompts": "2.91.0",
31
+ "@memberjunction/ai-agent-manager-actions": "2.91.0",
32
+ "@memberjunction/ai-mistral": "2.91.0",
33
+ "@memberjunction/ai-openai": "2.91.0",
34
+ "@memberjunction/ai-anthropic": "2.91.0",
35
+ "@memberjunction/ai-groq": "2.91.0",
36
+ "@memberjunction/ai-cerebras": "2.91.0",
37
+ "@memberjunction/ai-lmstudio": "2.91.0",
38
+ "@memberjunction/ai-openrouter": "2.91.0",
39
+ "@memberjunction/ai-ollama": "2.91.0",
40
+ "@memberjunction/ai-vectors-pinecone": "2.91.0",
41
+ "@memberjunction/ai-local-embeddings": "2.91.0",
42
+ "@memberjunction/core": "2.91.0",
43
+ "@memberjunction/core-actions": "2.91.0",
44
+ "@memberjunction/actions-apollo": "2.91.0",
45
+ "@memberjunction/actions-bizapps-accounting": "2.91.0",
46
+ "@memberjunction/actions-bizapps-crm": "2.91.0",
47
+ "@memberjunction/actions-bizapps-lms": "2.91.0",
48
+ "@memberjunction/actions-bizapps-social": "2.91.0",
49
+ "@memberjunction/core-entities": "2.91.0",
50
+ "@memberjunction/core-entities-server": "2.91.0",
51
+ "@memberjunction/data-context": "2.91.0",
52
+ "@memberjunction/data-context-server": "2.91.0",
53
+ "@memberjunction/doc-utils": "2.91.0",
54
+ "@memberjunction/entity-communications-server": "2.91.0",
55
+ "@memberjunction/external-change-detection": "2.91.0",
56
+ "@memberjunction/global": "2.91.0",
57
+ "@memberjunction/graphql-dataprovider": "2.91.0",
58
+ "@memberjunction/queue": "2.91.0",
59
+ "@memberjunction/skip-types": "2.91.0",
60
+ "@memberjunction/sqlserver-dataprovider": "2.91.0",
61
+ "@memberjunction/storage": "2.91.0",
62
+ "@memberjunction/templates": "2.91.0",
63
63
  "@types/compression": "^1.7.5",
64
64
  "@types/cors": "^2.8.13",
65
65
  "@types/jsonwebtoken": "9.0.6",
@@ -0,0 +1,152 @@
1
+ import { AuthProviderConfig } from '@memberjunction/core';
2
+ import { IAuthProvider } from './IAuthProvider.js';
3
+ import { BaseAuthProvider } from './BaseAuthProvider.js';
4
+ import { MJGlobal } from '@memberjunction/global';
5
+
6
+ // Import providers to ensure they're registered
7
+ import './providers/Auth0Provider.js';
8
+ import './providers/MSALProvider.js';
9
+ import './providers/OktaProvider.js';
10
+ import './providers/CognitoProvider.js';
11
+ import './providers/GoogleProvider.js';
12
+
13
+ /**
14
+ * Factory and registry for managing authentication providers
15
+ * Combines provider creation and lifecycle management in a single class
16
+ */
17
+ export class AuthProviderFactory {
18
+ private static instance: AuthProviderFactory;
19
+ private providers: Map<string, IAuthProvider> = new Map();
20
+ private issuerCache: Map<string, IAuthProvider> = new Map();
21
+
22
+ private constructor() {}
23
+
24
+ /**
25
+ * Gets the singleton instance of the factory
26
+ */
27
+ static getInstance(): AuthProviderFactory {
28
+ if (!AuthProviderFactory.instance) {
29
+ AuthProviderFactory.instance = new AuthProviderFactory();
30
+ }
31
+ return AuthProviderFactory.instance;
32
+ }
33
+
34
+ /**
35
+ * Creates an authentication provider instance based on configuration
36
+ * Uses MJGlobal ClassFactory to instantiate the correct provider class
37
+ */
38
+ static createProvider(config: AuthProviderConfig): IAuthProvider {
39
+ try {
40
+ // Use MJGlobal ClassFactory to create the provider instance
41
+ // The provider type in config should match the key used in @RegisterClass
42
+ // The config is passed as a constructor parameter via the spread operator
43
+ const provider = MJGlobal.Instance.ClassFactory.CreateInstance<BaseAuthProvider>(
44
+ BaseAuthProvider,
45
+ config.type.toLowerCase(),
46
+ config
47
+ );
48
+
49
+ if (!provider) {
50
+ throw new Error(`No provider registered for type: ${config.type}`);
51
+ }
52
+
53
+ return provider;
54
+ } catch (error) {
55
+ const message = error instanceof Error ? error.message : String(error);
56
+ throw new Error(`Failed to create authentication provider for type '${config.type}': ${message}`);
57
+ }
58
+ }
59
+
60
+ /**
61
+ * Registers a new authentication provider
62
+ */
63
+ register(provider: IAuthProvider): void {
64
+ if (!provider.validateConfig()) {
65
+ throw new Error(`Invalid configuration for provider: ${provider.name}`);
66
+ }
67
+
68
+ this.providers.set(provider.name, provider);
69
+
70
+ // Clear issuer cache when registering new provider
71
+ this.issuerCache.clear();
72
+
73
+ console.log(`Registered auth provider: ${provider.name} with issuer: ${provider.issuer}`);
74
+ }
75
+
76
+ /**
77
+ * Gets a provider by its issuer URL
78
+ */
79
+ getByIssuer(issuer: string): IAuthProvider | undefined {
80
+ // Check cache first
81
+ if (this.issuerCache.has(issuer)) {
82
+ return this.issuerCache.get(issuer);
83
+ }
84
+
85
+ // Search through providers
86
+ for (const provider of this.providers.values()) {
87
+ if (provider.matchesIssuer(issuer)) {
88
+ // Cache for future lookups
89
+ this.issuerCache.set(issuer, provider);
90
+ return provider;
91
+ }
92
+ }
93
+
94
+ return undefined;
95
+ }
96
+
97
+ /**
98
+ * Gets a provider by its name
99
+ */
100
+ getByName(name: string): IAuthProvider | undefined {
101
+ return this.providers.get(name);
102
+ }
103
+
104
+ /**
105
+ * Gets all registered providers
106
+ */
107
+ getAllProviders(): IAuthProvider[] {
108
+ return Array.from(this.providers.values());
109
+ }
110
+
111
+ /**
112
+ * Checks if any providers are registered
113
+ */
114
+ hasProviders(): boolean {
115
+ return this.providers.size > 0;
116
+ }
117
+
118
+ /**
119
+ * Clears all registered providers (useful for testing)
120
+ */
121
+ clear(): void {
122
+ this.providers.clear();
123
+ this.issuerCache.clear();
124
+ }
125
+
126
+ /**
127
+ * Gets all registered provider types from the ClassFactory
128
+ */
129
+ static getRegisteredProviderTypes(): string[] {
130
+ // Get all registrations for BaseAuthProvider from ClassFactory
131
+ const registrations = MJGlobal.Instance.ClassFactory.GetAllRegistrations(BaseAuthProvider);
132
+ // Extract unique keys (provider types) from registrations
133
+ const providerTypes = registrations
134
+ .map(reg => reg.Key)
135
+ .filter((key): key is string => key !== null && key !== undefined);
136
+ // Return unique provider types
137
+ return Array.from(new Set(providerTypes));
138
+ }
139
+
140
+ /**
141
+ * Checks if a provider type is registered
142
+ */
143
+ static isProviderTypeRegistered(type: string): boolean {
144
+ try {
145
+ // Try to get the registration for this specific type
146
+ const registration = MJGlobal.Instance.ClassFactory.GetRegistration(BaseAuthProvider, type.toLowerCase());
147
+ return registration !== null && registration !== undefined;
148
+ } catch {
149
+ return false;
150
+ }
151
+ }
152
+ }
@@ -0,0 +1,71 @@
1
+ import { JwtHeader, JwtPayload, SigningKeyCallback } from 'jsonwebtoken';
2
+ import jwksClient from 'jwks-rsa';
3
+ import { AuthProviderConfig, AuthUserInfo } from '@memberjunction/core';
4
+ import { IAuthProvider } from './IAuthProvider.js';
5
+
6
+ /**
7
+ * Base implementation of IAuthProvider with common functionality
8
+ * Concrete providers should extend this class and use @RegisterClass decorator
9
+ * with BaseAuthProvider as the base class
10
+ */
11
+ export abstract class BaseAuthProvider implements IAuthProvider {
12
+ name: string;
13
+ issuer: string;
14
+ audience: string;
15
+ jwksUri: string;
16
+ protected config: AuthProviderConfig;
17
+ protected jwksClient: jwksClient.JwksClient;
18
+
19
+ constructor(config: AuthProviderConfig) {
20
+ this.config = config;
21
+ this.name = config.name;
22
+ this.issuer = config.issuer;
23
+ this.audience = config.audience;
24
+ this.jwksUri = config.jwksUri;
25
+
26
+ // Initialize JWKS client
27
+ this.jwksClient = jwksClient({
28
+ jwksUri: this.jwksUri,
29
+ cache: true,
30
+ cacheMaxEntries: 5,
31
+ cacheMaxAge: 600000 // 10 minutes
32
+ });
33
+ }
34
+
35
+ /**
36
+ * Validates that required configuration is present
37
+ */
38
+ validateConfig(): boolean {
39
+ return !!(this.name && this.issuer && this.audience && this.jwksUri);
40
+ }
41
+
42
+ /**
43
+ * Gets the signing key for token verification
44
+ */
45
+ getSigningKey(header: JwtHeader, callback: SigningKeyCallback): void {
46
+ this.jwksClient.getSigningKey(header.kid)
47
+ .then((key) => {
48
+ const signingKey = 'publicKey' in key ? key.publicKey : key.rsaPublicKey;
49
+ callback(null, signingKey);
50
+ })
51
+ .catch((err) => {
52
+ console.error(`Error getting signing key for provider ${this.name}:`, err);
53
+ callback(err);
54
+ });
55
+ }
56
+
57
+ /**
58
+ * Checks if a given issuer URL belongs to this provider
59
+ */
60
+ matchesIssuer(issuer: string): boolean {
61
+ // Handle trailing slashes and case sensitivity
62
+ const normalizedIssuer = issuer.toLowerCase().replace(/\/$/, '');
63
+ const normalizedProviderIssuer = this.issuer.toLowerCase().replace(/\/$/, '');
64
+ return normalizedIssuer === normalizedProviderIssuer;
65
+ }
66
+
67
+ /**
68
+ * Abstract method for extracting user info - must be implemented by each provider
69
+ */
70
+ abstract extractUserInfo(payload: JwtPayload): AuthUserInfo;
71
+ }
@@ -0,0 +1,49 @@
1
+ import { JwtHeader, JwtPayload, SigningKeyCallback } from 'jsonwebtoken';
2
+ import { AuthProviderConfig, AuthUserInfo } from '@memberjunction/core';
3
+
4
+ /**
5
+ * Interface for authentication providers in MemberJunction
6
+ * Enables support for any OAuth 2.0/OIDC compliant provider
7
+ */
8
+ export interface IAuthProvider {
9
+ /**
10
+ * Unique name identifier for this provider
11
+ */
12
+ name: string;
13
+
14
+ /**
15
+ * The issuer URL for this provider (must match the 'iss' claim in tokens)
16
+ */
17
+ issuer: string;
18
+
19
+ /**
20
+ * The expected audience for tokens from this provider
21
+ */
22
+ audience: string;
23
+
24
+ /**
25
+ * The JWKS endpoint URL for retrieving signing keys
26
+ */
27
+ jwksUri: string;
28
+
29
+ /**
30
+ * Validates that the provider configuration is complete and valid
31
+ */
32
+ validateConfig(): boolean;
33
+
34
+ /**
35
+ * Gets the signing key for token verification
36
+ */
37
+ getSigningKey(header: JwtHeader, callback: SigningKeyCallback): void;
38
+
39
+ /**
40
+ * Extracts user information from the JWT payload
41
+ * Different providers use different claim names
42
+ */
43
+ extractUserInfo(payload: JwtPayload): AuthUserInfo;
44
+
45
+ /**
46
+ * Checks if a given issuer URL belongs to this provider
47
+ */
48
+ matchesIssuer(issuer: string): boolean;
49
+ }