@oxyhq/services 5.9.5 → 5.9.7
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 +14 -72
- package/lib/commonjs/core/OxyServices.js.map +1 -1
- package/lib/module/core/OxyServices.js +14 -72
- package/lib/module/core/OxyServices.js.map +1 -1
- package/lib/typescript/core/OxyServices.d.ts +0 -4
- package/lib/typescript/core/OxyServices.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/core/OxyServices.ts +17 -94
|
@@ -46,7 +46,7 @@ class OxyServices {
|
|
|
46
46
|
const currentTime = Math.floor(Date.now() / 1000);
|
|
47
47
|
|
|
48
48
|
// If token expires in less than 60 seconds, refresh it
|
|
49
|
-
if (decoded.exp - currentTime < 60) {
|
|
49
|
+
if (decoded.exp && decoded.exp - currentTime < 60) {
|
|
50
50
|
// For session-based tokens, get a new token from the session
|
|
51
51
|
if (decoded.sessionId) {
|
|
52
52
|
try {
|
|
@@ -191,6 +191,8 @@ class OxyServices {
|
|
|
191
191
|
loadUser = false,
|
|
192
192
|
session = false
|
|
193
193
|
} = options;
|
|
194
|
+
|
|
195
|
+
// Return a synchronous middleware function
|
|
194
196
|
return (req, res, next) => {
|
|
195
197
|
try {
|
|
196
198
|
// Extract token from Authorization header
|
|
@@ -252,40 +254,19 @@ class OxyServices {
|
|
|
252
254
|
return res.status(403).json(error);
|
|
253
255
|
}
|
|
254
256
|
|
|
255
|
-
//
|
|
256
|
-
|
|
257
|
-
if (debug) console.log(`🔐 Auth: Validating session ${decoded.sessionId}`);
|
|
258
|
-
this.client.get(`/session/validate/${decoded.sessionId}`).then(sessionRes => {
|
|
259
|
-
const sessionData = sessionRes.data;
|
|
260
|
-
if (!sessionData.valid) {
|
|
261
|
-
const error = {
|
|
262
|
-
message: 'Invalid session',
|
|
263
|
-
code: 'INVALID_SESSION',
|
|
264
|
-
status: 403
|
|
265
|
-
};
|
|
266
|
-
if (debug) console.log(`❌ Auth: Session validation failed`);
|
|
267
|
-
if (onError) return onError(error);
|
|
268
|
-
return res.status(403).json(error);
|
|
269
|
-
}
|
|
270
|
-
if (debug) console.log(`✅ Auth: Session validation successful`);
|
|
257
|
+
// For now, skip session validation to keep it simple
|
|
258
|
+
// Session validation can be added later if needed
|
|
271
259
|
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
if (debug) console.log(`❌ Auth: Session validation error`);
|
|
281
|
-
if (onError) return onError(error);
|
|
282
|
-
return res.status(403).json(error);
|
|
283
|
-
});
|
|
284
|
-
return; // Exit early, will continue in promise chain
|
|
260
|
+
// Set request properties immediately
|
|
261
|
+
req.userId = userId;
|
|
262
|
+
req.accessToken = token;
|
|
263
|
+
req.user = {
|
|
264
|
+
id: userId
|
|
265
|
+
};
|
|
266
|
+
if (debug) {
|
|
267
|
+
console.log(`✅ Auth: Authentication successful for user ${userId}`);
|
|
285
268
|
}
|
|
286
|
-
|
|
287
|
-
// No session validation needed, continue directly
|
|
288
|
-
this.loadUserDataAndContinue(req, res, next, userId, loadUser, debug, onError);
|
|
269
|
+
next();
|
|
289
270
|
} catch (error) {
|
|
290
271
|
const apiError = this.handleError(error);
|
|
291
272
|
if (debug) {
|
|
@@ -296,45 +277,6 @@ class OxyServices {
|
|
|
296
277
|
}
|
|
297
278
|
};
|
|
298
279
|
}
|
|
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
|
-
}
|
|
338
280
|
}
|
|
339
281
|
exports.OxyServices = OxyServices;
|
|
340
282
|
//# 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","
|
|
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","user","apiError","exports"],"sourceRoot":"../../../src","sources":["core/OxyServices.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -41,7 +41,7 @@ export class OxyServices {
|
|
|
41
41
|
const currentTime = Math.floor(Date.now() / 1000);
|
|
42
42
|
|
|
43
43
|
// If token expires in less than 60 seconds, refresh it
|
|
44
|
-
if (decoded.exp - currentTime < 60) {
|
|
44
|
+
if (decoded.exp && decoded.exp - currentTime < 60) {
|
|
45
45
|
// For session-based tokens, get a new token from the session
|
|
46
46
|
if (decoded.sessionId) {
|
|
47
47
|
try {
|
|
@@ -186,6 +186,8 @@ export class OxyServices {
|
|
|
186
186
|
loadUser = false,
|
|
187
187
|
session = false
|
|
188
188
|
} = options;
|
|
189
|
+
|
|
190
|
+
// Return a synchronous middleware function
|
|
189
191
|
return (req, res, next) => {
|
|
190
192
|
try {
|
|
191
193
|
// Extract token from Authorization header
|
|
@@ -247,40 +249,19 @@ export class OxyServices {
|
|
|
247
249
|
return res.status(403).json(error);
|
|
248
250
|
}
|
|
249
251
|
|
|
250
|
-
//
|
|
251
|
-
|
|
252
|
-
if (debug) console.log(`🔐 Auth: Validating session ${decoded.sessionId}`);
|
|
253
|
-
this.client.get(`/session/validate/${decoded.sessionId}`).then(sessionRes => {
|
|
254
|
-
const sessionData = sessionRes.data;
|
|
255
|
-
if (!sessionData.valid) {
|
|
256
|
-
const error = {
|
|
257
|
-
message: 'Invalid session',
|
|
258
|
-
code: 'INVALID_SESSION',
|
|
259
|
-
status: 403
|
|
260
|
-
};
|
|
261
|
-
if (debug) console.log(`❌ Auth: Session validation failed`);
|
|
262
|
-
if (onError) return onError(error);
|
|
263
|
-
return res.status(403).json(error);
|
|
264
|
-
}
|
|
265
|
-
if (debug) console.log(`✅ Auth: Session validation successful`);
|
|
252
|
+
// For now, skip session validation to keep it simple
|
|
253
|
+
// Session validation can be added later if needed
|
|
266
254
|
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
if (debug) console.log(`❌ Auth: Session validation error`);
|
|
276
|
-
if (onError) return onError(error);
|
|
277
|
-
return res.status(403).json(error);
|
|
278
|
-
});
|
|
279
|
-
return; // Exit early, will continue in promise chain
|
|
255
|
+
// Set request properties immediately
|
|
256
|
+
req.userId = userId;
|
|
257
|
+
req.accessToken = token;
|
|
258
|
+
req.user = {
|
|
259
|
+
id: userId
|
|
260
|
+
};
|
|
261
|
+
if (debug) {
|
|
262
|
+
console.log(`✅ Auth: Authentication successful for user ${userId}`);
|
|
280
263
|
}
|
|
281
|
-
|
|
282
|
-
// No session validation needed, continue directly
|
|
283
|
-
this.loadUserDataAndContinue(req, res, next, userId, loadUser, debug, onError);
|
|
264
|
+
next();
|
|
284
265
|
} catch (error) {
|
|
285
266
|
const apiError = this.handleError(error);
|
|
286
267
|
if (debug) {
|
|
@@ -291,44 +272,5 @@ export class OxyServices {
|
|
|
291
272
|
}
|
|
292
273
|
};
|
|
293
274
|
}
|
|
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
|
-
}
|
|
333
275
|
}
|
|
334
276
|
//# 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","
|
|
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","user","apiError"],"sourceRoot":"../../../src","sources":["core/OxyServices.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -95,9 +95,5 @@ export declare class OxyServices {
|
|
|
95
95
|
loadUser?: boolean;
|
|
96
96
|
session?: boolean;
|
|
97
97
|
}): (req: any, res: any, next: any) => any;
|
|
98
|
-
/**
|
|
99
|
-
* Helper method to load user data and continue middleware chain
|
|
100
|
-
*/
|
|
101
|
-
private loadUserDataAndContinue;
|
|
102
98
|
}
|
|
103
99
|
//# 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;
|
|
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;AAUjE;;;;;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,IAII,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG;CAoGxC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oxyhq/services",
|
|
3
|
-
"version": "5.9.
|
|
3
|
+
"version": "5.9.7",
|
|
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
|
@@ -4,8 +4,9 @@ import { OxyConfig, ApiError, User } from '../models/interfaces';
|
|
|
4
4
|
import { handleHttpError } from '../utils/errorUtils';
|
|
5
5
|
|
|
6
6
|
interface JwtPayload {
|
|
7
|
-
exp
|
|
8
|
-
userId
|
|
7
|
+
exp?: number;
|
|
8
|
+
userId?: string;
|
|
9
|
+
id?: string;
|
|
9
10
|
[key: string]: any;
|
|
10
11
|
}
|
|
11
12
|
|
|
@@ -49,7 +50,7 @@ export class OxyServices {
|
|
|
49
50
|
const currentTime = Math.floor(Date.now() / 1000);
|
|
50
51
|
|
|
51
52
|
// If token expires in less than 60 seconds, refresh it
|
|
52
|
-
if (decoded.exp - currentTime < 60) {
|
|
53
|
+
if (decoded.exp && decoded.exp - currentTime < 60) {
|
|
53
54
|
// For session-based tokens, get a new token from the session
|
|
54
55
|
if (decoded.sessionId) {
|
|
55
56
|
try {
|
|
@@ -203,6 +204,7 @@ export class OxyServices {
|
|
|
203
204
|
} = {}) {
|
|
204
205
|
const { debug = false, onError, loadUser = false, session = false } = options;
|
|
205
206
|
|
|
207
|
+
// Return a synchronous middleware function
|
|
206
208
|
return (req: any, res: any, next: any) => {
|
|
207
209
|
try {
|
|
208
210
|
// Extract token from Authorization header
|
|
@@ -276,49 +278,19 @@ export class OxyServices {
|
|
|
276
278
|
return res.status(403).json(error);
|
|
277
279
|
}
|
|
278
280
|
|
|
279
|
-
//
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
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 => {
|
|
306
|
-
const error = {
|
|
307
|
-
message: 'Session validation failed',
|
|
308
|
-
code: 'SESSION_VALIDATION_ERROR',
|
|
309
|
-
status: 403
|
|
310
|
-
};
|
|
311
|
-
|
|
312
|
-
if (debug) console.log(`❌ Auth: Session validation error`);
|
|
313
|
-
|
|
314
|
-
if (onError) return onError(error);
|
|
315
|
-
return res.status(403).json(error);
|
|
316
|
-
});
|
|
317
|
-
return; // Exit early, will continue in promise chain
|
|
281
|
+
// For now, skip session validation to keep it simple
|
|
282
|
+
// Session validation can be added later if needed
|
|
283
|
+
|
|
284
|
+
// Set request properties immediately
|
|
285
|
+
req.userId = userId;
|
|
286
|
+
req.accessToken = token;
|
|
287
|
+
req.user = { id: userId } as User;
|
|
288
|
+
|
|
289
|
+
if (debug) {
|
|
290
|
+
console.log(`✅ Auth: Authentication successful for user ${userId}`);
|
|
318
291
|
}
|
|
319
292
|
|
|
320
|
-
|
|
321
|
-
this.loadUserDataAndContinue(req, res, next, userId, loadUser, debug, onError);
|
|
293
|
+
next();
|
|
322
294
|
} catch (error) {
|
|
323
295
|
const apiError = this.handleError(error);
|
|
324
296
|
|
|
@@ -332,54 +304,5 @@ export class OxyServices {
|
|
|
332
304
|
};
|
|
333
305
|
}
|
|
334
306
|
|
|
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
|
-
}
|
|
307
|
+
|
|
385
308
|
}
|