@estopia/shared 1.0.32 → 1.0.33
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.
|
@@ -6,5 +6,5 @@ import { EstopiaRequest } from '../../types/request';
|
|
|
6
6
|
* - On success: sets req.auth = { ...payload, token } and calls next()
|
|
7
7
|
* - On failure: responds with 401 and an appropriate error message
|
|
8
8
|
*/
|
|
9
|
-
export declare function requireAuth(req: EstopiaRequest, res: any, next: any): any
|
|
9
|
+
export declare function requireAuth(req: EstopiaRequest, res: any, next: any): Promise<any>;
|
|
10
10
|
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/helpers/middlware/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD;;;;;;GAMG;AACH,
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/helpers/middlware/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,gBA6DzE"}
|
|
@@ -9,7 +9,7 @@ const validateJWTToken_1 = require("../validateJWTToken");
|
|
|
9
9
|
* - On success: sets req.auth = { ...payload, token } and calls next()
|
|
10
10
|
* - On failure: responds with 401 and an appropriate error message
|
|
11
11
|
*/
|
|
12
|
-
function requireAuth(req, res, next) {
|
|
12
|
+
async function requireAuth(req, res, next) {
|
|
13
13
|
// Get Authorization header (many frameworks provide case-insensitive header lookup)
|
|
14
14
|
const authHeader = typeof req.header === 'function' ? req.header('Authorization') : undefined;
|
|
15
15
|
// Extract token from "Bearer <token>" or use header value directly
|
|
@@ -26,6 +26,21 @@ function requireAuth(req, res, next) {
|
|
|
26
26
|
return res.status(401).json({ error: 'Missing authorization token' });
|
|
27
27
|
}
|
|
28
28
|
try {
|
|
29
|
+
// Check if token is potentially an OAuth token (typically 80 hex characters)
|
|
30
|
+
if (token.length === 80 && /^[0-9a-f]+$/i.test(token)) {
|
|
31
|
+
if (req.cockroachPool) {
|
|
32
|
+
const db = req.cockroachPool;
|
|
33
|
+
const tokenRecord = await db.selectFrom('oauth_tokens')
|
|
34
|
+
.selectAll()
|
|
35
|
+
.where('access_token', '=', token)
|
|
36
|
+
.executeTakeFirst();
|
|
37
|
+
if (tokenRecord && new Date(tokenRecord.access_token_expires_at) >= new Date()) {
|
|
38
|
+
// Valid OAuth token
|
|
39
|
+
req.auth = { userId: tokenRecord.user_id, token, scopes: tokenRecord.scopes };
|
|
40
|
+
return next();
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
29
44
|
const payload = (0, validateJWTToken_1.validateJWTToken)(token);
|
|
30
45
|
if (!payload) {
|
|
31
46
|
return res.status(401).json({ error: 'Invalid token' });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/helpers/middlware/auth.ts"],"names":[],"mappings":";;AAUA,
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/helpers/middlware/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/types/request.d.ts
CHANGED
|
@@ -4,9 +4,10 @@ import { DB } from "../database/dataTypes";
|
|
|
4
4
|
import { LogMeta } from '../logging/logger';
|
|
5
5
|
export interface EstopiaRequest extends Request {
|
|
6
6
|
auth?: {
|
|
7
|
-
userId: string;
|
|
7
|
+
userId: string | null;
|
|
8
8
|
token?: string;
|
|
9
9
|
secureToken?: string;
|
|
10
|
+
scopes?: string[] | null;
|
|
10
11
|
};
|
|
11
12
|
logger: Logger;
|
|
12
13
|
cockroachPool?: Kysely<DB>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/types/request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,EAAE,EAAE,MAAM,uBAAuB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,MAAM,WAAW,cAAe,SAAQ,OAAO;IAC3C,IAAI,CAAC,EAAE;QACH,MAAM,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/types/request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,EAAE,EAAE,MAAM,uBAAuB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,MAAM,WAAW,cAAe,SAAQ,OAAO;IAC3C,IAAI,CAAC,EAAE;QACH,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;KAC5B,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3B,SAAS,CAAC,EAAE,GAAG,CAAC;CACnB;AAED,MAAM,WAAW,MAAM;IACrB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACxC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACzC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACxC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACzC,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,GAAG,IAAI,CAAC;CAClJ"}
|