@oxyhq/services 5.9.4 → 5.9.5
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/lib/commonjs/core/OxyServices.js +50 -32
- package/lib/commonjs/core/OxyServices.js.map +1 -1
- package/lib/module/core/OxyServices.js +50 -32
- package/lib/module/core/OxyServices.js.map +1 -1
- package/lib/typescript/core/OxyServices.d.ts +5 -1
- package/lib/typescript/core/OxyServices.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/core/OxyServices.ts +84 -50
|
@@ -191,7 +191,7 @@ class OxyServices {
|
|
|
191
191
|
loadUser = false,
|
|
192
192
|
session = false
|
|
193
193
|
} = options;
|
|
194
|
-
return
|
|
194
|
+
return (req, res, next) => {
|
|
195
195
|
try {
|
|
196
196
|
// Extract token from Authorization header
|
|
197
197
|
const authHeader = req.headers['authorization'];
|
|
@@ -254,9 +254,8 @@ class OxyServices {
|
|
|
254
254
|
|
|
255
255
|
// Session-based validation if requested
|
|
256
256
|
if (session && decoded.sessionId) {
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
const sessionRes = await this.client.get(`/session/validate/${decoded.sessionId}`);
|
|
257
|
+
if (debug) console.log(`🔐 Auth: Validating session ${decoded.sessionId}`);
|
|
258
|
+
this.client.get(`/session/validate/${decoded.sessionId}`).then(sessionRes => {
|
|
260
259
|
const sessionData = sessionRes.data;
|
|
261
260
|
if (!sessionData.valid) {
|
|
262
261
|
const error = {
|
|
@@ -269,7 +268,10 @@ class OxyServices {
|
|
|
269
268
|
return res.status(403).json(error);
|
|
270
269
|
}
|
|
271
270
|
if (debug) console.log(`✅ Auth: Session validation successful`);
|
|
272
|
-
|
|
271
|
+
|
|
272
|
+
// Continue with user data loading
|
|
273
|
+
this.loadUserDataAndContinue(req, res, next, userId, loadUser, debug, onError);
|
|
274
|
+
}).catch(sessionError => {
|
|
273
275
|
const error = {
|
|
274
276
|
message: 'Session validation failed',
|
|
275
277
|
code: 'SESSION_VALIDATION_ERROR',
|
|
@@ -278,35 +280,12 @@ class OxyServices {
|
|
|
278
280
|
if (debug) console.log(`❌ Auth: Session validation error`);
|
|
279
281
|
if (onError) return onError(error);
|
|
280
282
|
return res.status(403).json(error);
|
|
281
|
-
}
|
|
283
|
+
});
|
|
284
|
+
return; // Exit early, will continue in promise chain
|
|
282
285
|
}
|
|
283
286
|
|
|
284
|
-
//
|
|
285
|
-
req
|
|
286
|
-
req.accessToken = token;
|
|
287
|
-
|
|
288
|
-
// Load user data if requested
|
|
289
|
-
if (loadUser) {
|
|
290
|
-
try {
|
|
291
|
-
const userRes = await this.client.get(`/users/${userId}`);
|
|
292
|
-
req.user = userRes.data;
|
|
293
|
-
} catch (userError) {
|
|
294
|
-
// If user loading fails, just use minimal user data
|
|
295
|
-
req.user = {
|
|
296
|
-
id: userId
|
|
297
|
-
};
|
|
298
|
-
if (debug) console.log(`⚠️ Auth: Failed to load user data, using minimal data`);
|
|
299
|
-
}
|
|
300
|
-
} else {
|
|
301
|
-
// Use minimal user data for performance
|
|
302
|
-
req.user = {
|
|
303
|
-
id: userId
|
|
304
|
-
};
|
|
305
|
-
}
|
|
306
|
-
if (debug) {
|
|
307
|
-
console.log(`✅ Auth: Authentication successful for user ${userId}`);
|
|
308
|
-
}
|
|
309
|
-
next();
|
|
287
|
+
// No session validation needed, continue directly
|
|
288
|
+
this.loadUserDataAndContinue(req, res, next, userId, loadUser, debug, onError);
|
|
310
289
|
} catch (error) {
|
|
311
290
|
const apiError = this.handleError(error);
|
|
312
291
|
if (debug) {
|
|
@@ -317,6 +296,45 @@ class OxyServices {
|
|
|
317
296
|
}
|
|
318
297
|
};
|
|
319
298
|
}
|
|
299
|
+
|
|
300
|
+
/**
|
|
301
|
+
* Helper method to load user data and continue middleware chain
|
|
302
|
+
*/
|
|
303
|
+
loadUserDataAndContinue(req, res, next, userId, loadUser, debug, onError) {
|
|
304
|
+
// Set request properties
|
|
305
|
+
req.userId = userId;
|
|
306
|
+
req.accessToken = req.headers['authorization']?.substring(7) || null;
|
|
307
|
+
|
|
308
|
+
// Load user data if requested
|
|
309
|
+
if (loadUser) {
|
|
310
|
+
this.client.get(`/users/${userId}`).then(userRes => {
|
|
311
|
+
req.user = userRes.data;
|
|
312
|
+
if (debug) {
|
|
313
|
+
console.log(`✅ Auth: Authentication successful for user ${userId}`);
|
|
314
|
+
}
|
|
315
|
+
next();
|
|
316
|
+
}).catch(userError => {
|
|
317
|
+
// If user loading fails, just use minimal user data
|
|
318
|
+
req.user = {
|
|
319
|
+
id: userId
|
|
320
|
+
};
|
|
321
|
+
if (debug) {
|
|
322
|
+
console.log(`⚠️ Auth: Failed to load user data, using minimal data`);
|
|
323
|
+
console.log(`✅ Auth: Authentication successful for user ${userId}`);
|
|
324
|
+
}
|
|
325
|
+
next();
|
|
326
|
+
});
|
|
327
|
+
} else {
|
|
328
|
+
// Use minimal user data for performance
|
|
329
|
+
req.user = {
|
|
330
|
+
id: userId
|
|
331
|
+
};
|
|
332
|
+
if (debug) {
|
|
333
|
+
console.log(`✅ Auth: Authentication successful for user ${userId}`);
|
|
334
|
+
}
|
|
335
|
+
next();
|
|
336
|
+
}
|
|
337
|
+
}
|
|
320
338
|
}
|
|
321
339
|
exports.OxyServices = OxyServices;
|
|
322
340
|
//# sourceMappingURL=OxyServices.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_axios","_interopRequireDefault","require","_jwtDecode","_errorUtils","e","__esModule","default","OxyServices","accessToken","refreshToken","constructor","config","client","axios","create","baseURL","timeout","setupInterceptors","interceptors","request","use","req","decoded","jwtDecode","currentTime","Math","floor","Date","now","exp","sessionId","res","get","data","refreshError","clearTokens","headers","Authorization","error","getBaseURL","defaults","setTokens","getCurrentUserId","userId","id","hasAccessToken","validate","valid","getClient","handleError","handleHttpError","healthCheck","auth","options","debug","onError","loadUser","session","next","authHeader","token","startsWith","substring","console","log","method","path","message","code","status","json","decodeError","sessionRes","sessionData","sessionError","userRes","user","userError","
|
|
1
|
+
{"version":3,"names":["_axios","_interopRequireDefault","require","_jwtDecode","_errorUtils","e","__esModule","default","OxyServices","accessToken","refreshToken","constructor","config","client","axios","create","baseURL","timeout","setupInterceptors","interceptors","request","use","req","decoded","jwtDecode","currentTime","Math","floor","Date","now","exp","sessionId","res","get","data","refreshError","clearTokens","headers","Authorization","error","getBaseURL","defaults","setTokens","getCurrentUserId","userId","id","hasAccessToken","validate","valid","getClient","handleError","handleHttpError","healthCheck","auth","options","debug","onError","loadUser","session","next","authHeader","token","startsWith","substring","console","log","method","path","message","code","status","json","decodeError","then","sessionRes","sessionData","loadUserDataAndContinue","catch","sessionError","apiError","userRes","user","userError","exports"],"sourceRoot":"../../../src","sources":["core/OxyServices.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -186,7 +186,7 @@ export class OxyServices {
|
|
|
186
186
|
loadUser = false,
|
|
187
187
|
session = false
|
|
188
188
|
} = options;
|
|
189
|
-
return
|
|
189
|
+
return (req, res, next) => {
|
|
190
190
|
try {
|
|
191
191
|
// Extract token from Authorization header
|
|
192
192
|
const authHeader = req.headers['authorization'];
|
|
@@ -249,9 +249,8 @@ export class OxyServices {
|
|
|
249
249
|
|
|
250
250
|
// Session-based validation if requested
|
|
251
251
|
if (session && decoded.sessionId) {
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
const sessionRes = await this.client.get(`/session/validate/${decoded.sessionId}`);
|
|
252
|
+
if (debug) console.log(`🔐 Auth: Validating session ${decoded.sessionId}`);
|
|
253
|
+
this.client.get(`/session/validate/${decoded.sessionId}`).then(sessionRes => {
|
|
255
254
|
const sessionData = sessionRes.data;
|
|
256
255
|
if (!sessionData.valid) {
|
|
257
256
|
const error = {
|
|
@@ -264,7 +263,10 @@ export class OxyServices {
|
|
|
264
263
|
return res.status(403).json(error);
|
|
265
264
|
}
|
|
266
265
|
if (debug) console.log(`✅ Auth: Session validation successful`);
|
|
267
|
-
|
|
266
|
+
|
|
267
|
+
// Continue with user data loading
|
|
268
|
+
this.loadUserDataAndContinue(req, res, next, userId, loadUser, debug, onError);
|
|
269
|
+
}).catch(sessionError => {
|
|
268
270
|
const error = {
|
|
269
271
|
message: 'Session validation failed',
|
|
270
272
|
code: 'SESSION_VALIDATION_ERROR',
|
|
@@ -273,35 +275,12 @@ export class OxyServices {
|
|
|
273
275
|
if (debug) console.log(`❌ Auth: Session validation error`);
|
|
274
276
|
if (onError) return onError(error);
|
|
275
277
|
return res.status(403).json(error);
|
|
276
|
-
}
|
|
278
|
+
});
|
|
279
|
+
return; // Exit early, will continue in promise chain
|
|
277
280
|
}
|
|
278
281
|
|
|
279
|
-
//
|
|
280
|
-
req
|
|
281
|
-
req.accessToken = token;
|
|
282
|
-
|
|
283
|
-
// Load user data if requested
|
|
284
|
-
if (loadUser) {
|
|
285
|
-
try {
|
|
286
|
-
const userRes = await this.client.get(`/users/${userId}`);
|
|
287
|
-
req.user = userRes.data;
|
|
288
|
-
} catch (userError) {
|
|
289
|
-
// If user loading fails, just use minimal user data
|
|
290
|
-
req.user = {
|
|
291
|
-
id: userId
|
|
292
|
-
};
|
|
293
|
-
if (debug) console.log(`⚠️ Auth: Failed to load user data, using minimal data`);
|
|
294
|
-
}
|
|
295
|
-
} else {
|
|
296
|
-
// Use minimal user data for performance
|
|
297
|
-
req.user = {
|
|
298
|
-
id: userId
|
|
299
|
-
};
|
|
300
|
-
}
|
|
301
|
-
if (debug) {
|
|
302
|
-
console.log(`✅ Auth: Authentication successful for user ${userId}`);
|
|
303
|
-
}
|
|
304
|
-
next();
|
|
282
|
+
// No session validation needed, continue directly
|
|
283
|
+
this.loadUserDataAndContinue(req, res, next, userId, loadUser, debug, onError);
|
|
305
284
|
} catch (error) {
|
|
306
285
|
const apiError = this.handleError(error);
|
|
307
286
|
if (debug) {
|
|
@@ -312,5 +291,44 @@ export class OxyServices {
|
|
|
312
291
|
}
|
|
313
292
|
};
|
|
314
293
|
}
|
|
294
|
+
|
|
295
|
+
/**
|
|
296
|
+
* Helper method to load user data and continue middleware chain
|
|
297
|
+
*/
|
|
298
|
+
loadUserDataAndContinue(req, res, next, userId, loadUser, debug, onError) {
|
|
299
|
+
// Set request properties
|
|
300
|
+
req.userId = userId;
|
|
301
|
+
req.accessToken = req.headers['authorization']?.substring(7) || null;
|
|
302
|
+
|
|
303
|
+
// Load user data if requested
|
|
304
|
+
if (loadUser) {
|
|
305
|
+
this.client.get(`/users/${userId}`).then(userRes => {
|
|
306
|
+
req.user = userRes.data;
|
|
307
|
+
if (debug) {
|
|
308
|
+
console.log(`✅ Auth: Authentication successful for user ${userId}`);
|
|
309
|
+
}
|
|
310
|
+
next();
|
|
311
|
+
}).catch(userError => {
|
|
312
|
+
// If user loading fails, just use minimal user data
|
|
313
|
+
req.user = {
|
|
314
|
+
id: userId
|
|
315
|
+
};
|
|
316
|
+
if (debug) {
|
|
317
|
+
console.log(`⚠️ Auth: Failed to load user data, using minimal data`);
|
|
318
|
+
console.log(`✅ Auth: Authentication successful for user ${userId}`);
|
|
319
|
+
}
|
|
320
|
+
next();
|
|
321
|
+
});
|
|
322
|
+
} else {
|
|
323
|
+
// Use minimal user data for performance
|
|
324
|
+
req.user = {
|
|
325
|
+
id: userId
|
|
326
|
+
};
|
|
327
|
+
if (debug) {
|
|
328
|
+
console.log(`✅ Auth: Authentication successful for user ${userId}`);
|
|
329
|
+
}
|
|
330
|
+
next();
|
|
331
|
+
}
|
|
332
|
+
}
|
|
315
333
|
}
|
|
316
334
|
//# sourceMappingURL=OxyServices.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["axios","jwtDecode","handleHttpError","OxyServices","accessToken","refreshToken","constructor","config","client","create","baseURL","timeout","setupInterceptors","interceptors","request","use","req","decoded","currentTime","Math","floor","Date","now","exp","sessionId","res","get","data","refreshError","clearTokens","headers","Authorization","error","getBaseURL","defaults","setTokens","getCurrentUserId","userId","id","hasAccessToken","validate","valid","getClient","handleError","healthCheck","auth","options","debug","onError","loadUser","session","next","authHeader","token","startsWith","substring","console","log","method","path","message","code","status","json","decodeError","sessionRes","sessionData","sessionError","userRes","user","userError"
|
|
1
|
+
{"version":3,"names":["axios","jwtDecode","handleHttpError","OxyServices","accessToken","refreshToken","constructor","config","client","create","baseURL","timeout","setupInterceptors","interceptors","request","use","req","decoded","currentTime","Math","floor","Date","now","exp","sessionId","res","get","data","refreshError","clearTokens","headers","Authorization","error","getBaseURL","defaults","setTokens","getCurrentUserId","userId","id","hasAccessToken","validate","valid","getClient","handleError","healthCheck","auth","options","debug","onError","loadUser","session","next","authHeader","token","startsWith","substring","console","log","method","path","message","code","status","json","decodeError","then","sessionRes","sessionData","loadUserDataAndContinue","catch","sessionError","apiError","userRes","user","userError"],"sourceRoot":"../../../src","sources":["core/OxyServices.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -94,6 +94,10 @@ export declare class OxyServices {
|
|
|
94
94
|
onError?: (error: ApiError) => any;
|
|
95
95
|
loadUser?: boolean;
|
|
96
96
|
session?: boolean;
|
|
97
|
-
}): (req: any, res: any, next: any) =>
|
|
97
|
+
}): (req: any, res: any, next: any) => any;
|
|
98
|
+
/**
|
|
99
|
+
* Helper method to load user data and continue middleware chain
|
|
100
|
+
*/
|
|
101
|
+
private loadUserDataAndContinue;
|
|
98
102
|
}
|
|
99
103
|
//# sourceMappingURL=OxyServices.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OxyServices.d.ts","sourceRoot":"","sources":["../../../src/core/OxyServices.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAA8B,MAAM,OAAO,CAAC;AAEzE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAQ,MAAM,sBAAsB,CAAC;AASjE;;;;;GAKG;AACH,qBAAa,WAAW;IACtB,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC;IAChC,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,YAAY,CAAuB;IAE3C;;;OAGG;gBACS,MAAM,EAAE,SAAS;IAS7B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAqCzB;;OAEG;IACI,UAAU,IAAI,MAAM;IAI3B;;OAEG;IACI,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,GAAE,MAAW,GAAG,IAAI;IAKtE;;OAEG;IACI,WAAW,IAAI,IAAI;IAK1B;;OAEG;IACI,gBAAgB,IAAI,MAAM,GAAG,IAAI;IAaxC;;OAEG;IACH,OAAO,CAAC,cAAc;IAItB;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IAalC;;OAEG;IACH,SAAS,CAAC,SAAS,IAAI,aAAa;IAIpC;;OAEG;IACH,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,QAAQ;IAI3C;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC;QAC3B,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KACnB,CAAC;IASF;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,IAAI,CAAC,OAAO,GAAE;QACZ,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,GAAG,CAAC;QACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,OAAO,CAAC,EAAE,OAAO,CAAC;KACd,
|
|
1
|
+
{"version":3,"file":"OxyServices.d.ts","sourceRoot":"","sources":["../../../src/core/OxyServices.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAA8B,MAAM,OAAO,CAAC;AAEzE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAQ,MAAM,sBAAsB,CAAC;AASjE;;;;;GAKG;AACH,qBAAa,WAAW;IACtB,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC;IAChC,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,YAAY,CAAuB;IAE3C;;;OAGG;gBACS,MAAM,EAAE,SAAS;IAS7B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAqCzB;;OAEG;IACI,UAAU,IAAI,MAAM;IAI3B;;OAEG;IACI,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,GAAE,MAAW,GAAG,IAAI;IAKtE;;OAEG;IACI,WAAW,IAAI,IAAI;IAK1B;;OAEG;IACI,gBAAgB,IAAI,MAAM,GAAG,IAAI;IAaxC;;OAEG;IACH,OAAO,CAAC,cAAc;IAItB;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IAalC;;OAEG;IACH,SAAS,CAAC,SAAS,IAAI,aAAa;IAIpC;;OAEG;IACH,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,QAAQ;IAI3C;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC;QAC3B,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KACnB,CAAC;IASF;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,IAAI,CAAC,OAAO,GAAE;QACZ,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,GAAG,CAAC;QACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,OAAO,CAAC,EAAE,OAAO,CAAC;KACd,IAGI,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG;IAiIvC;;OAEG;IACH,OAAO,CAAC,uBAAuB;CA+ChC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oxyhq/services",
|
|
3
|
-
"version": "5.9.
|
|
3
|
+
"version": "5.9.5",
|
|
4
4
|
"description": "Reusable OxyHQ module to handle authentication, user management, karma system, device-based session management and more 🚀",
|
|
5
5
|
"main": "lib/commonjs/index.js",
|
|
6
6
|
"module": "lib/module/index.js",
|
package/src/core/OxyServices.ts
CHANGED
|
@@ -203,7 +203,7 @@ export class OxyServices {
|
|
|
203
203
|
} = {}) {
|
|
204
204
|
const { debug = false, onError, loadUser = false, session = false } = options;
|
|
205
205
|
|
|
206
|
-
return
|
|
206
|
+
return (req: any, res: any, next: any) => {
|
|
207
207
|
try {
|
|
208
208
|
// Extract token from Authorization header
|
|
209
209
|
const authHeader = req.headers['authorization'];
|
|
@@ -278,64 +278,47 @@ export class OxyServices {
|
|
|
278
278
|
|
|
279
279
|
// Session-based validation if requested
|
|
280
280
|
if (session && decoded.sessionId) {
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
281
|
+
if (debug) console.log(`🔐 Auth: Validating session ${decoded.sessionId}`);
|
|
282
|
+
|
|
283
|
+
this.client.get(`/session/validate/${decoded.sessionId}`)
|
|
284
|
+
.then(sessionRes => {
|
|
285
|
+
const sessionData = sessionRes.data;
|
|
286
|
+
|
|
287
|
+
if (!sessionData.valid) {
|
|
288
|
+
const error = {
|
|
289
|
+
message: 'Invalid session',
|
|
290
|
+
code: 'INVALID_SESSION',
|
|
291
|
+
status: 403
|
|
292
|
+
};
|
|
293
|
+
|
|
294
|
+
if (debug) console.log(`❌ Auth: Session validation failed`);
|
|
295
|
+
|
|
296
|
+
if (onError) return onError(error);
|
|
297
|
+
return res.status(403).json(error);
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
if (debug) console.log(`✅ Auth: Session validation successful`);
|
|
301
|
+
|
|
302
|
+
// Continue with user data loading
|
|
303
|
+
this.loadUserDataAndContinue(req, res, next, userId, loadUser, debug, onError);
|
|
304
|
+
})
|
|
305
|
+
.catch(sessionError => {
|
|
288
306
|
const error = {
|
|
289
|
-
message: '
|
|
290
|
-
code: '
|
|
307
|
+
message: 'Session validation failed',
|
|
308
|
+
code: 'SESSION_VALIDATION_ERROR',
|
|
291
309
|
status: 403
|
|
292
310
|
};
|
|
293
311
|
|
|
294
|
-
if (debug) console.log(`❌ Auth: Session validation
|
|
312
|
+
if (debug) console.log(`❌ Auth: Session validation error`);
|
|
295
313
|
|
|
296
314
|
if (onError) return onError(error);
|
|
297
315
|
return res.status(403).json(error);
|
|
298
|
-
}
|
|
299
|
-
|
|
300
|
-
if (debug) console.log(`✅ Auth: Session validation successful`);
|
|
301
|
-
} catch (sessionError) {
|
|
302
|
-
const error = {
|
|
303
|
-
message: 'Session validation failed',
|
|
304
|
-
code: 'SESSION_VALIDATION_ERROR',
|
|
305
|
-
status: 403
|
|
306
|
-
};
|
|
307
|
-
|
|
308
|
-
if (debug) console.log(`❌ Auth: Session validation error`);
|
|
309
|
-
|
|
310
|
-
if (onError) return onError(error);
|
|
311
|
-
return res.status(403).json(error);
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
|
|
315
|
-
// Set request properties
|
|
316
|
-
req.userId = userId;
|
|
317
|
-
req.accessToken = token;
|
|
318
|
-
|
|
319
|
-
// Load user data if requested
|
|
320
|
-
if (loadUser) {
|
|
321
|
-
try {
|
|
322
|
-
const userRes = await this.client.get(`/users/${userId}`);
|
|
323
|
-
req.user = userRes.data;
|
|
324
|
-
} catch (userError) {
|
|
325
|
-
// If user loading fails, just use minimal user data
|
|
326
|
-
req.user = { id: userId } as User;
|
|
327
|
-
if (debug) console.log(`⚠️ Auth: Failed to load user data, using minimal data`);
|
|
328
|
-
}
|
|
329
|
-
} else {
|
|
330
|
-
// Use minimal user data for performance
|
|
331
|
-
req.user = { id: userId } as User;
|
|
332
|
-
}
|
|
333
|
-
|
|
334
|
-
if (debug) {
|
|
335
|
-
console.log(`✅ Auth: Authentication successful for user ${userId}`);
|
|
316
|
+
});
|
|
317
|
+
return; // Exit early, will continue in promise chain
|
|
336
318
|
}
|
|
337
319
|
|
|
338
|
-
|
|
320
|
+
// No session validation needed, continue directly
|
|
321
|
+
this.loadUserDataAndContinue(req, res, next, userId, loadUser, debug, onError);
|
|
339
322
|
} catch (error) {
|
|
340
323
|
const apiError = this.handleError(error);
|
|
341
324
|
|
|
@@ -348,4 +331,55 @@ export class OxyServices {
|
|
|
348
331
|
}
|
|
349
332
|
};
|
|
350
333
|
}
|
|
334
|
+
|
|
335
|
+
/**
|
|
336
|
+
* Helper method to load user data and continue middleware chain
|
|
337
|
+
*/
|
|
338
|
+
private loadUserDataAndContinue(
|
|
339
|
+
req: any,
|
|
340
|
+
res: any,
|
|
341
|
+
next: any,
|
|
342
|
+
userId: string,
|
|
343
|
+
loadUser: boolean,
|
|
344
|
+
debug: boolean,
|
|
345
|
+
onError?: (error: ApiError) => any
|
|
346
|
+
): void {
|
|
347
|
+
// Set request properties
|
|
348
|
+
req.userId = userId;
|
|
349
|
+
req.accessToken = req.headers['authorization']?.substring(7) || null;
|
|
350
|
+
|
|
351
|
+
// Load user data if requested
|
|
352
|
+
if (loadUser) {
|
|
353
|
+
this.client.get(`/users/${userId}`)
|
|
354
|
+
.then(userRes => {
|
|
355
|
+
req.user = userRes.data;
|
|
356
|
+
|
|
357
|
+
if (debug) {
|
|
358
|
+
console.log(`✅ Auth: Authentication successful for user ${userId}`);
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
next();
|
|
362
|
+
})
|
|
363
|
+
.catch(userError => {
|
|
364
|
+
// If user loading fails, just use minimal user data
|
|
365
|
+
req.user = { id: userId } as User;
|
|
366
|
+
|
|
367
|
+
if (debug) {
|
|
368
|
+
console.log(`⚠️ Auth: Failed to load user data, using minimal data`);
|
|
369
|
+
console.log(`✅ Auth: Authentication successful for user ${userId}`);
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
next();
|
|
373
|
+
});
|
|
374
|
+
} else {
|
|
375
|
+
// Use minimal user data for performance
|
|
376
|
+
req.user = { id: userId } as User;
|
|
377
|
+
|
|
378
|
+
if (debug) {
|
|
379
|
+
console.log(`✅ Auth: Authentication successful for user ${userId}`);
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
next();
|
|
383
|
+
}
|
|
384
|
+
}
|
|
351
385
|
}
|