prostgles-server 4.2.88 → 4.2.89
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/AuthHandler.d.ts +5 -2
- package/dist/AuthHandler.d.ts.map +1 -1
- package/dist/AuthHandler.js +43 -14
- package/dist/AuthHandler.js.map +1 -1
- package/dist/FileManager/initFileManager.d.ts.map +1 -1
- package/dist/FileManager/initFileManager.js +9 -14
- package/dist/FileManager/initFileManager.js.map +1 -1
- package/lib/AuthHandler.ts +51 -16
- package/lib/FileManager/initFileManager.ts +11 -15
- package/package.json +1 -1
- package/tests/isomorphicQueries.spec.ts +6 -1
- package/tests/server/index.ts +9 -3
- package/tests/server/package-lock.json +1 -1
- package/tests/serverOnlyQueries.spec.ts +3 -2
package/dist/AuthHandler.d.ts
CHANGED
|
@@ -63,6 +63,7 @@ export declare const HTTPCODES: {
|
|
|
63
63
|
AUTH_ERROR: number;
|
|
64
64
|
NOT_FOUND: number;
|
|
65
65
|
BAD_REQUEST: number;
|
|
66
|
+
INTERNAL_SERVER_ERROR: number;
|
|
66
67
|
};
|
|
67
68
|
export declare const getLoginClientInfo: (req: AuthClientRequest) => AuthClientRequest & LoginClientInfo;
|
|
68
69
|
export type AuthRequestParams<S, SUser extends SessionUser> = {
|
|
@@ -124,7 +125,7 @@ export type Auth<S = void, SUser extends SessionUser = SessionUser> = {
|
|
|
124
125
|
* Name of get url parameter used in redirecting user after successful login.
|
|
125
126
|
* Defaults to "returnURL"
|
|
126
127
|
*/
|
|
127
|
-
|
|
128
|
+
returnUrlParamName?: string;
|
|
128
129
|
magicLinks?: {
|
|
129
130
|
/**
|
|
130
131
|
* Will default to /magic-link
|
|
@@ -158,7 +159,7 @@ export declare class AuthHandler {
|
|
|
158
159
|
sidKeyName?: string;
|
|
159
160
|
routes: {
|
|
160
161
|
login?: string;
|
|
161
|
-
|
|
162
|
+
returnUrlParamName?: string;
|
|
162
163
|
logoutGetPath?: string;
|
|
163
164
|
magicLinks?: {
|
|
164
165
|
route: string;
|
|
@@ -175,6 +176,7 @@ export declare class AuthHandler {
|
|
|
175
176
|
httpReq: ExpressReq;
|
|
176
177
|
}) => Promise<AuthResult>;
|
|
177
178
|
init(): Promise<void>;
|
|
179
|
+
getReturnUrl: (req: ExpressReq) => string | null | undefined;
|
|
178
180
|
destroy: () => void;
|
|
179
181
|
throttledFunc: <T>(func: () => Promise<T>, throttle?: number) => Promise<T>;
|
|
180
182
|
loginThrottled: (params: AnyObject, client: LoginClientInfo) => Promise<BasicSession>;
|
|
@@ -197,5 +199,6 @@ export declare class AuthHandler {
|
|
|
197
199
|
userData: AuthResult;
|
|
198
200
|
}>;
|
|
199
201
|
}
|
|
202
|
+
export declare const getSafeReturnURL: (returnURL: string, returnUrlParamName: string) => string | undefined;
|
|
200
203
|
export {};
|
|
201
204
|
//# sourceMappingURL=AuthHandler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthHandler.d.ts","sourceRoot":"","sources":["../lib/AuthHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnE,OAAO,EAAE,SAAS,EAA0D,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACjH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAE,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7D,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AACnC,KAAK,gBAAgB,GAAG;IACtB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC;AACjC,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC;AAElC,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IAEzB,iCAAiC;IACjC,GAAG,EAAE,MAAM,CAAC;IAEZ,iCAAiC;IACjC,OAAO,EAAE,MAAM,CAAC;IAEhB,iBAAiB;IACjB,YAAY,EAAE,UAAU,GAAG,YAAY,CAAC;CACzC,CAAC;AACF,MAAM,MAAM,iBAAiB,GAAG;IAAE,MAAM,EAAE,YAAY,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,UAAU,CAAA;CAAE,CAAC;AACnF,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB,CAAA;AACD,MAAM,MAAM,WAAW,CAAC,UAAU,SAAS,QAAQ,GAAG,QAAQ,EAAE,UAAU,SAAS,SAAS,GAAG,SAAS,IAAI;IAC1G;;;SAGK;IACL,IAAI,EAAE,UAAU,CAAC;IACjB;;OAEG;IACH,aAAa,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;IACxC;;OAEG;IACH,UAAU,EAAE,UAAU,CAAC;CACxB,CAAA;AAED,MAAM,MAAM,UAAU,CAAC,EAAE,GAAG,WAAW,IAAI,EAAE,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;CAAE,GAAG;IACjE,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GAAG,SAAS,CAAC;AAEd,eAAO,MAAM,SAAS
|
|
1
|
+
{"version":3,"file":"AuthHandler.d.ts","sourceRoot":"","sources":["../lib/AuthHandler.ts"],"names":[],"mappings":"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"}
|
package/dist/AuthHandler.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AuthHandler = exports.getLoginClientInfo = exports.HTTPCODES = void 0;
|
|
3
|
+
exports.getSafeReturnURL = exports.AuthHandler = exports.getLoginClientInfo = exports.HTTPCODES = void 0;
|
|
4
4
|
const prostgles_types_1 = require("prostgles-types");
|
|
5
5
|
const FileManager_1 = require("./FileManager/FileManager");
|
|
6
6
|
exports.HTTPCODES = {
|
|
7
7
|
AUTH_ERROR: 401,
|
|
8
8
|
NOT_FOUND: 404,
|
|
9
9
|
BAD_REQUEST: 400,
|
|
10
|
+
INTERNAL_SERVER_ERROR: 500,
|
|
10
11
|
};
|
|
11
12
|
const getLoginClientInfo = (req) => {
|
|
12
13
|
if ("httpReq" in req) {
|
|
@@ -46,14 +47,14 @@ class AuthHandler {
|
|
|
46
47
|
this.prostgles = prostgles;
|
|
47
48
|
this.opts = prostgles.opts.auth;
|
|
48
49
|
if (prostgles.opts.auth?.expressConfig) {
|
|
49
|
-
const { magicLinks,
|
|
50
|
+
const { magicLinks, returnUrlParamName, loginRoute, logoutGetPath } = prostgles.opts.auth.expressConfig;
|
|
50
51
|
const magicLinksRoute = magicLinks?.route || "/magic-link";
|
|
51
52
|
this.routes = {
|
|
52
53
|
magicLinks: magicLinks ? {
|
|
53
54
|
expressRoute: `${magicLinksRoute}/:id`,
|
|
54
55
|
route: magicLinksRoute
|
|
55
56
|
} : undefined,
|
|
56
|
-
|
|
57
|
+
returnUrlParamName: returnUrlParamName || "returnURL",
|
|
57
58
|
login: loginRoute || "/login",
|
|
58
59
|
logoutGetPath: logoutGetPath || "/logout",
|
|
59
60
|
catchAll: "*"
|
|
@@ -86,7 +87,7 @@ class AuthHandler {
|
|
|
86
87
|
if (this.routes?.magicLinks?.route)
|
|
87
88
|
pubRoutes.push(this.routes.magicLinks.route);
|
|
88
89
|
return !pubRoutes.some(publicRoute => {
|
|
89
|
-
return this.matchesRoute(publicRoute, pathname);
|
|
90
|
+
return this.matchesRoute(publicRoute, pathname);
|
|
90
91
|
});
|
|
91
92
|
};
|
|
92
93
|
setCookieAndGoToReturnURLIFSet = (cookie, r) => {
|
|
@@ -114,10 +115,10 @@ class AuthHandler {
|
|
|
114
115
|
...(this.opts?.expressConfig?.cookieOptions || {})
|
|
115
116
|
};
|
|
116
117
|
const cookieData = sid;
|
|
117
|
-
if (!this.sidKeyName || !this.routes?.
|
|
118
|
+
if (!this.sidKeyName || !this.routes?.returnUrlParamName)
|
|
118
119
|
throw "sidKeyName or returnURL missing";
|
|
119
120
|
res.cookie(this.sidKeyName, cookieData, cookieOpts);
|
|
120
|
-
const successURL = getReturnUrl(req
|
|
121
|
+
const successURL = this.getReturnUrl(req) || "/";
|
|
121
122
|
res.redirect(successURL);
|
|
122
123
|
}
|
|
123
124
|
else {
|
|
@@ -254,7 +255,7 @@ class AuthHandler {
|
|
|
254
255
|
}
|
|
255
256
|
}
|
|
256
257
|
try {
|
|
257
|
-
const returnURL = getReturnUrl(req
|
|
258
|
+
const returnURL = this.getReturnUrl(req);
|
|
258
259
|
/**
|
|
259
260
|
* Requesting a User route
|
|
260
261
|
*/
|
|
@@ -287,6 +288,14 @@ class AuthHandler {
|
|
|
287
288
|
}
|
|
288
289
|
}
|
|
289
290
|
}
|
|
291
|
+
getReturnUrl = (req) => {
|
|
292
|
+
const { returnUrlParamName } = this.routes;
|
|
293
|
+
if (req?.query && returnUrlParamName) {
|
|
294
|
+
const returnURL = decodeURIComponent(req?.query?.[returnUrlParamName]);
|
|
295
|
+
return (0, exports.getSafeReturnURL)(returnURL, returnUrlParamName);
|
|
296
|
+
}
|
|
297
|
+
return null;
|
|
298
|
+
};
|
|
290
299
|
destroy = () => {
|
|
291
300
|
const app = this.opts?.expressConfig?.app;
|
|
292
301
|
const { login, logoutGetPath, magicLinks } = this.routes;
|
|
@@ -543,13 +552,33 @@ class AuthHandler {
|
|
|
543
552
|
};
|
|
544
553
|
}
|
|
545
554
|
exports.AuthHandler = AuthHandler;
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
555
|
+
const getSafeReturnURL = (returnURL, returnUrlParamName) => {
|
|
556
|
+
/** Dissalow redirect to other domains */
|
|
557
|
+
if (returnURL) {
|
|
558
|
+
const allowedOrigin = "https://localhost";
|
|
559
|
+
const { origin, pathname, search, searchParams } = new URL(returnURL, allowedOrigin);
|
|
560
|
+
if (origin !== allowedOrigin ||
|
|
561
|
+
returnURL !== `${pathname}${search}` ||
|
|
562
|
+
searchParams.get(returnUrlParamName)) {
|
|
563
|
+
console.error(`Unsafe returnUrl: ${returnURL}. Redirecting to /`);
|
|
564
|
+
return "/";
|
|
565
|
+
}
|
|
566
|
+
return returnURL;
|
|
552
567
|
}
|
|
553
|
-
|
|
568
|
+
};
|
|
569
|
+
exports.getSafeReturnURL = getSafeReturnURL;
|
|
570
|
+
const issue = [
|
|
571
|
+
["https://localhost", "/"],
|
|
572
|
+
["//localhost.bad.com", "/"],
|
|
573
|
+
["//localhost.com", "/"],
|
|
574
|
+
["/localhost/com", "/localhost/com"],
|
|
575
|
+
["/localhost/com?here=there", "/localhost/com?here=there"],
|
|
576
|
+
["/localhost/com?returnUrl=there", "/"],
|
|
577
|
+
["//http://localhost.com", "/"],
|
|
578
|
+
["//abc.com", "/"],
|
|
579
|
+
["///abc.com", "/"],
|
|
580
|
+
].find(([returnURL, expected]) => (0, exports.getSafeReturnURL)(returnURL, "returnUrl") !== expected);
|
|
581
|
+
if (issue) {
|
|
582
|
+
throw new Error(`getSafeReturnURL failed for ${issue[0]}. Expected: ${issue[1]}`);
|
|
554
583
|
}
|
|
555
584
|
//# sourceMappingURL=AuthHandler.js.map
|
package/dist/AuthHandler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthHandler.js","sourceRoot":"","sources":["../lib/AuthHandler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AuthHandler.js","sourceRoot":"","sources":["../lib/AuthHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initFileManager.d.ts","sourceRoot":"","sources":["../../lib/FileManager/initFileManager.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,WAAW,EAAqB,MAAM,eAAe,CAAC;AAI/D,wBAAsB,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"initFileManager.d.ts","sourceRoot":"","sources":["../../lib/FileManager/initFileManager.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,WAAW,EAAqB,MAAM,eAAe,CAAC;AAI/D,wBAAsB,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,iBAiLtE"}
|
|
@@ -65,7 +65,7 @@ async function initFileManager(prg) {
|
|
|
65
65
|
}
|
|
66
66
|
const cols = await this.dbo[refTable].getColumns();
|
|
67
67
|
const tableConfig = referencedTables[refTable];
|
|
68
|
-
for (const [colName
|
|
68
|
+
for (const [colName] of Object.entries(tableConfig.referenceColumns)) {
|
|
69
69
|
const existingCol = cols.find(c => c.name === colName);
|
|
70
70
|
if (existingCol) {
|
|
71
71
|
if (existingCol.references?.some(({ ftable }) => ftable === tableName)) {
|
|
@@ -114,16 +114,18 @@ async function initFileManager(prg) {
|
|
|
114
114
|
if (app) {
|
|
115
115
|
app.get(this.fileRouteExpress, async (req, res) => {
|
|
116
116
|
if (!this.dbo[tableName]) {
|
|
117
|
-
res.status(
|
|
117
|
+
res.status(AuthHandler_1.HTTPCODES.INTERNAL_SERVER_ERROR).json(`Internal error: media table (${tableName}) not valid`);
|
|
118
118
|
return false;
|
|
119
119
|
}
|
|
120
120
|
const mediaTable = this.dbo[tableName];
|
|
121
121
|
try {
|
|
122
122
|
const { name } = req.params;
|
|
123
|
-
if (typeof name !== "string" || !name)
|
|
123
|
+
if (typeof name !== "string" || !name) {
|
|
124
124
|
throw "Invalid media name";
|
|
125
|
-
|
|
125
|
+
}
|
|
126
|
+
if (!this.prostgles) {
|
|
126
127
|
throw "Prostgles instance missing";
|
|
128
|
+
}
|
|
127
129
|
const id = name.slice(0, 36);
|
|
128
130
|
const selectParams = { select: { id: 1, name: 1, signed_url: 1, signed_url_expires: 1, content_type: 1 } };
|
|
129
131
|
const media = await runClientRequest_1.runClientRequest.bind(this.prostgles)({
|
|
@@ -136,15 +138,8 @@ async function initFileManager(prg) {
|
|
|
136
138
|
param3: undefined
|
|
137
139
|
});
|
|
138
140
|
if (!media) {
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
*/
|
|
142
|
-
// const mediaExists = await mediaTable.count({ name });
|
|
143
|
-
// if(mediaExists && this.prostgles.authHandler){
|
|
144
|
-
// } else {
|
|
145
|
-
// throw "Invalid media";
|
|
146
|
-
// }
|
|
147
|
-
throw "Invalid media";
|
|
141
|
+
res.status(AuthHandler_1.HTTPCODES.NOT_FOUND).send("File not found or not allowed");
|
|
142
|
+
return;
|
|
148
143
|
}
|
|
149
144
|
if (this.cloudClient) {
|
|
150
145
|
let url = media.signed_url;
|
|
@@ -167,7 +162,7 @@ async function initFileManager(prg) {
|
|
|
167
162
|
}
|
|
168
163
|
catch (e) {
|
|
169
164
|
console.log(e);
|
|
170
|
-
res.status(AuthHandler_1.HTTPCODES.BAD_REQUEST).
|
|
165
|
+
res.status(AuthHandler_1.HTTPCODES.BAD_REQUEST).send("Invalid/disallowed file");
|
|
171
166
|
}
|
|
172
167
|
});
|
|
173
168
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initFileManager.js","sourceRoot":"","sources":["../../lib/FileManager/initFileManager.ts"],"names":[],"mappings":";;;AAAA,yBAAyB;AACzB,qDAAmD;AAEnD,iDAAuD;AAEvD,+CAA+D;AAC/D,0DAAuD;AACvD,gDAA2C;AAEpC,KAAK,UAAU,eAAe,CAAoB,GAAc;IACrE,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;IAErB,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;IAC/B,IAAG,CAAC,SAAS,EAAE,CAAC;QACd,MAAM,mBAAmB,CAAC;IAC5B,CAAC;IACD,MAAM,EAAE,SAAS,GAAG,OAAO,EAAE,gBAAgB,GAAG,EAAE,EAAE,GAAG,SAAS,CAAC;IACjE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAE3B,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,IAAI,GAAG,CAAC,GAAC,GAAG,CAAC;IAC9E,OAAO,CAAC,GAAG,CAAC,6DAA6D,WAAW,uGAAuG,CAAC,CAAC;IAE7L,MAAM,SAAS,GAAG,MAAM,IAAA,wBAAe,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,KAAK,EAAE,CAAS,EAAE,SAAiB,EAAiB,EAAE;QACrE,MAAM,GAAG,GAAG,MAAM,IAAA,0BAAQ,EAAC,KAAK,IAAI,EAAE;YACpC,IAAG,CAAC,SAAS;gBAAE,MAAM,sFAAsF,CAAC;YAC5G,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,0BAA0B,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QACxH,IAAG,GAAG,CAAC,KAAK,EAAE,CAAC;YACb,MAAM,GAAG,CAAC,KAAK,CAAC;QAClB,CAAC;IACH,CAAC,CAAA;IACD;;OAEG;IACH,IAAG,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAC,CAAC;QACvB,MAAM,QAAQ,CAAC;;mCAEgB,IAAA,wBAAM,EAAC,SAAS,CAAC;;;;;;;;;;;;;;;;;;MAkB9C,EAAE,oBAAoB,IAAA,wBAAM,EAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC7C,MAAM,GAAG,CAAC,UAAU,EAAE,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,KAAI,MAAM,QAAQ,IAAI,gBAAgB,EAAC,CAAC;QAEtC,IAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvB,MAAM,qBAAqB,QAAQ,wEAAwE,CAAC;QAC9G,CAAC;QACD,MAAM,IAAI,GAAG,MAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAkB,CAAC,UAAU,EAAE,CAAC;QAErE,MAAM,WAAW,GAAG,gBAAgB,CAAC,QAAQ,CAAE,CAAC;QAEhD,KAAK,MAAM,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"initFileManager.js","sourceRoot":"","sources":["../../lib/FileManager/initFileManager.ts"],"names":[],"mappings":"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"}
|
package/lib/AuthHandler.ts
CHANGED
|
@@ -66,6 +66,7 @@ export const HTTPCODES = {
|
|
|
66
66
|
AUTH_ERROR: 401,
|
|
67
67
|
NOT_FOUND: 404,
|
|
68
68
|
BAD_REQUEST: 400,
|
|
69
|
+
INTERNAL_SERVER_ERROR: 500,
|
|
69
70
|
};
|
|
70
71
|
|
|
71
72
|
export const getLoginClientInfo = (req: AuthClientRequest): AuthClientRequest & LoginClientInfo => {
|
|
@@ -157,7 +158,7 @@ export type Auth<S = void, SUser extends SessionUser = SessionUser> = {
|
|
|
157
158
|
* Name of get url parameter used in redirecting user after successful login.
|
|
158
159
|
* Defaults to "returnURL"
|
|
159
160
|
*/
|
|
160
|
-
|
|
161
|
+
returnUrlParamName?: string;
|
|
161
162
|
|
|
162
163
|
magicLinks?: {
|
|
163
164
|
|
|
@@ -200,7 +201,7 @@ export class AuthHandler {
|
|
|
200
201
|
|
|
201
202
|
routes: {
|
|
202
203
|
login?: string;
|
|
203
|
-
|
|
204
|
+
returnUrlParamName?: string;
|
|
204
205
|
logoutGetPath?: string;
|
|
205
206
|
magicLinks?: {
|
|
206
207
|
route: string;
|
|
@@ -215,19 +216,18 @@ export class AuthHandler {
|
|
|
215
216
|
this.prostgles = prostgles;
|
|
216
217
|
this.opts = prostgles.opts.auth as any;
|
|
217
218
|
if (prostgles.opts.auth?.expressConfig) {
|
|
218
|
-
const { magicLinks,
|
|
219
|
+
const { magicLinks, returnUrlParamName, loginRoute, logoutGetPath } = prostgles.opts.auth.expressConfig;
|
|
219
220
|
const magicLinksRoute = magicLinks?.route || "/magic-link"
|
|
220
221
|
this.routes = {
|
|
221
222
|
magicLinks: magicLinks? {
|
|
222
223
|
expressRoute: `${magicLinksRoute}/:id`,
|
|
223
224
|
route: magicLinksRoute
|
|
224
225
|
} : undefined,
|
|
225
|
-
|
|
226
|
+
returnUrlParamName: returnUrlParamName || "returnURL",
|
|
226
227
|
login: loginRoute || "/login",
|
|
227
228
|
logoutGetPath: logoutGetPath || "/logout",
|
|
228
229
|
catchAll: "*"
|
|
229
230
|
}
|
|
230
|
-
|
|
231
231
|
}
|
|
232
232
|
if(!prostgles.dbo || !prostgles.db) throw "dbo or db missing";
|
|
233
233
|
this.dbo = prostgles.dbo;
|
|
@@ -256,7 +256,7 @@ export class AuthHandler {
|
|
|
256
256
|
if (this.routes?.magicLinks?.route) pubRoutes.push(this.routes.magicLinks.route);
|
|
257
257
|
|
|
258
258
|
return !pubRoutes.some(publicRoute => {
|
|
259
|
-
return this.matchesRoute(publicRoute, pathname);
|
|
259
|
+
return this.matchesRoute(publicRoute, pathname);
|
|
260
260
|
});
|
|
261
261
|
}
|
|
262
262
|
|
|
@@ -287,9 +287,9 @@ export class AuthHandler {
|
|
|
287
287
|
...(this.opts?.expressConfig?.cookieOptions || {})
|
|
288
288
|
};
|
|
289
289
|
const cookieData = sid;
|
|
290
|
-
if(!this.sidKeyName || !this.routes?.
|
|
290
|
+
if(!this.sidKeyName || !this.routes?.returnUrlParamName) throw "sidKeyName or returnURL missing"
|
|
291
291
|
res.cookie(this.sidKeyName, cookieData, cookieOpts);
|
|
292
|
-
const successURL = getReturnUrl(req
|
|
292
|
+
const successURL = this.getReturnUrl(req) || "/";
|
|
293
293
|
res.redirect(successURL);
|
|
294
294
|
|
|
295
295
|
} else {
|
|
@@ -435,7 +435,7 @@ export class AuthHandler {
|
|
|
435
435
|
}
|
|
436
436
|
}
|
|
437
437
|
try {
|
|
438
|
-
const returnURL = getReturnUrl(req
|
|
438
|
+
const returnURL = this.getReturnUrl(req);
|
|
439
439
|
|
|
440
440
|
/**
|
|
441
441
|
* Requesting a User route
|
|
@@ -475,6 +475,17 @@ export class AuthHandler {
|
|
|
475
475
|
}
|
|
476
476
|
}
|
|
477
477
|
|
|
478
|
+
getReturnUrl = (req: ExpressReq) => {
|
|
479
|
+
const { returnUrlParamName } = this.routes;
|
|
480
|
+
if (req?.query && returnUrlParamName) {
|
|
481
|
+
const returnURL = decodeURIComponent(req?.query?.[returnUrlParamName] as string);
|
|
482
|
+
|
|
483
|
+
return getSafeReturnURL(returnURL, returnUrlParamName);
|
|
484
|
+
}
|
|
485
|
+
return null;
|
|
486
|
+
|
|
487
|
+
}
|
|
488
|
+
|
|
478
489
|
destroy = () => {
|
|
479
490
|
const app = this.opts?.expressConfig?.app;
|
|
480
491
|
const { login, logoutGetPath, magicLinks } = this.routes;
|
|
@@ -768,12 +779,36 @@ export class AuthHandler {
|
|
|
768
779
|
}
|
|
769
780
|
}
|
|
770
781
|
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
782
|
+
export const getSafeReturnURL = (returnURL: string, returnUrlParamName: string) => {
|
|
783
|
+
/** Dissalow redirect to other domains */
|
|
784
|
+
if(returnURL) {
|
|
785
|
+
const allowedOrigin = "https://localhost";
|
|
786
|
+
const { origin, pathname, search, searchParams } = new URL(returnURL, allowedOrigin);
|
|
787
|
+
if(
|
|
788
|
+
origin !== allowedOrigin ||
|
|
789
|
+
returnURL !== `${pathname}${search}` ||
|
|
790
|
+
searchParams.get(returnUrlParamName)
|
|
791
|
+
){
|
|
792
|
+
console.error(`Unsafe returnUrl: ${returnURL}. Redirecting to /`);
|
|
793
|
+
return "/";
|
|
794
|
+
}
|
|
795
|
+
|
|
796
|
+
return returnURL;
|
|
777
797
|
}
|
|
778
|
-
|
|
798
|
+
}
|
|
799
|
+
|
|
800
|
+
const issue = ([
|
|
801
|
+
["https://localhost", "/"],
|
|
802
|
+
["//localhost.bad.com", "/"],
|
|
803
|
+
["//localhost.com", "/"],
|
|
804
|
+
["/localhost/com", "/localhost/com"],
|
|
805
|
+
["/localhost/com?here=there", "/localhost/com?here=there"],
|
|
806
|
+
["/localhost/com?returnUrl=there", "/"],
|
|
807
|
+
["//http://localhost.com", "/"],
|
|
808
|
+
["//abc.com", "/"],
|
|
809
|
+
["///abc.com", "/"],
|
|
810
|
+
] as const).find(([returnURL, expected]) => getSafeReturnURL(returnURL, "returnUrl") !== expected);
|
|
811
|
+
|
|
812
|
+
if(issue){
|
|
813
|
+
throw new Error(`getSafeReturnURL failed for ${issue[0]}. Expected: ${issue[1]}`);
|
|
779
814
|
}
|
|
@@ -71,7 +71,7 @@ export async function initFileManager(this: FileManager, prg: Prostgles){
|
|
|
71
71
|
|
|
72
72
|
const tableConfig = referencedTables[refTable]!;
|
|
73
73
|
|
|
74
|
-
for (const [colName
|
|
74
|
+
for (const [colName] of Object.entries(tableConfig.referenceColumns)){
|
|
75
75
|
const existingCol = cols.find(c => c.name === colName);
|
|
76
76
|
if(existingCol){
|
|
77
77
|
if(existingCol.references?.some(({ ftable }) => ftable === tableName)){
|
|
@@ -125,7 +125,7 @@ export async function initFileManager(this: FileManager, prg: Prostgles){
|
|
|
125
125
|
if(app){
|
|
126
126
|
app.get(this.fileRouteExpress, async (req, res) => {
|
|
127
127
|
if(!this.dbo[tableName]){
|
|
128
|
-
res.status(
|
|
128
|
+
res.status(HTTPCODES.INTERNAL_SERVER_ERROR).json(`Internal error: media table (${tableName}) not valid`);
|
|
129
129
|
return false;
|
|
130
130
|
}
|
|
131
131
|
|
|
@@ -134,8 +134,12 @@ export async function initFileManager(this: FileManager, prg: Prostgles){
|
|
|
134
134
|
try {
|
|
135
135
|
|
|
136
136
|
const { name } = req.params;
|
|
137
|
-
if(typeof name !== "string" || !name)
|
|
138
|
-
|
|
137
|
+
if(typeof name !== "string" || !name) {
|
|
138
|
+
throw "Invalid media name";
|
|
139
|
+
}
|
|
140
|
+
if(!this.prostgles) {
|
|
141
|
+
throw "Prostgles instance missing";
|
|
142
|
+
}
|
|
139
143
|
const id = name.slice(0, 36);
|
|
140
144
|
const selectParams = { select: { id: 1, name: 1, signed_url: 1, signed_url_expires: 1, content_type: 1 } }
|
|
141
145
|
const media = await runClientRequest.bind(this.prostgles)({
|
|
@@ -149,16 +153,8 @@ export async function initFileManager(this: FileManager, prg: Prostgles){
|
|
|
149
153
|
});
|
|
150
154
|
|
|
151
155
|
if(!media) {
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
*/
|
|
155
|
-
// const mediaExists = await mediaTable.count({ name });
|
|
156
|
-
// if(mediaExists && this.prostgles.authHandler){
|
|
157
|
-
|
|
158
|
-
// } else {
|
|
159
|
-
// throw "Invalid media";
|
|
160
|
-
// }
|
|
161
|
-
throw "Invalid media";
|
|
156
|
+
res.status(HTTPCODES.NOT_FOUND).send("File not found or not allowed");
|
|
157
|
+
return;
|
|
162
158
|
}
|
|
163
159
|
|
|
164
160
|
if(this.cloudClient){
|
|
@@ -184,7 +180,7 @@ export async function initFileManager(this: FileManager, prg: Prostgles){
|
|
|
184
180
|
|
|
185
181
|
} catch(e){
|
|
186
182
|
console.log(e)
|
|
187
|
-
res.status(HTTPCODES.BAD_REQUEST).
|
|
183
|
+
res.status(HTTPCODES.BAD_REQUEST).send("Invalid/disallowed file");
|
|
188
184
|
}
|
|
189
185
|
});
|
|
190
186
|
}
|
package/package.json
CHANGED
|
@@ -1033,15 +1033,20 @@ export const isomorphicQueries = async (db: DBOFullyTyped | DBHandlerClient, log
|
|
|
1033
1033
|
`, [], { returnType: "rows" });
|
|
1034
1034
|
const apps = await db.sql?.(`SELECT * FROM prostgles.apps`, [], { returnType: "value" });
|
|
1035
1035
|
const app_triggers = await db.sql?.(`SELECT * FROM prostgles.app_triggers`, [], { returnType: "rows" });
|
|
1036
|
+
log("show-logs");
|
|
1036
1037
|
log(JSON.stringify({ appName, apps, app_triggers }, null, 2));
|
|
1037
1038
|
}
|
|
1038
1039
|
}, 2000);
|
|
1039
1040
|
const sub = await db[`"""quoted0"""`].subscribe!(filter, { }, async items => {
|
|
1040
1041
|
const item = items[0];
|
|
1042
|
+
log(JSON.stringify({
|
|
1043
|
+
item,
|
|
1044
|
+
runs,
|
|
1045
|
+
}, null, 2));
|
|
1041
1046
|
if(item && item[`"text_col0"`] === "0"){
|
|
1042
1047
|
runs++;
|
|
1043
1048
|
if(runs === 1){
|
|
1044
|
-
db[`"""quoted0"""`].update!(filter, filter);
|
|
1049
|
+
await db[`"""quoted0"""`].update!(filter, filter);
|
|
1045
1050
|
}
|
|
1046
1051
|
if(runs < 2){
|
|
1047
1052
|
return;
|
package/tests/server/index.ts
CHANGED
|
@@ -28,8 +28,10 @@ import type { DBOFullyTyped } from "prostgles-server/dist/DBSchemaBuilder";
|
|
|
28
28
|
import { spawn } from "child_process";
|
|
29
29
|
export type { DBHandlerServer } from "prostgles-server/dist/Prostgles";
|
|
30
30
|
|
|
31
|
+
let logs = [];
|
|
32
|
+
|
|
31
33
|
export const log = (msg: string, extra?: any, trace?: boolean) => {
|
|
32
|
-
const msgs = ["(server): " + msg, extra].filter(v => v);
|
|
34
|
+
const msgs = msg.includes("show-logs")? logs : ["(server): " + msg, extra].filter(v => v);
|
|
33
35
|
if(trace){
|
|
34
36
|
console.trace(...msgs);
|
|
35
37
|
} else {
|
|
@@ -77,7 +79,6 @@ function dd(){
|
|
|
77
79
|
if(!dbo) return;
|
|
78
80
|
dbo.tbl.find;
|
|
79
81
|
}
|
|
80
|
-
|
|
81
82
|
(async () => {
|
|
82
83
|
|
|
83
84
|
|
|
@@ -101,6 +102,8 @@ function dd(){
|
|
|
101
102
|
transactions: true,
|
|
102
103
|
schema: { public: 1, prostgles_test: 1 },
|
|
103
104
|
onLog: async ev => {
|
|
105
|
+
logs.push(ev);
|
|
106
|
+
logs = logs.slice(-10);
|
|
104
107
|
if(ev.type === "debug" || ev.type === "connect" || ev.type === "disconnect"){
|
|
105
108
|
// log("onLog", ev);
|
|
106
109
|
}
|
|
@@ -135,8 +138,11 @@ function dd(){
|
|
|
135
138
|
if(isClientTest){
|
|
136
139
|
log("Client connected -> console does not work. use log function. socket.id:", socket.id);
|
|
137
140
|
socket.emit("start-test", { server_id: Math.random() });
|
|
138
|
-
socket.on("log", async (data, cb) => {
|
|
141
|
+
socket.on("log", async (data, cb) => {
|
|
139
142
|
console.log("Client log ", data);
|
|
143
|
+
if(typeof data === "string" && data.includes("show-logs")){
|
|
144
|
+
log(data);
|
|
145
|
+
}
|
|
140
146
|
});
|
|
141
147
|
socket.on("stop-test", async (err, cb) => {
|
|
142
148
|
cb();
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { DBHandlerServer } from "../dist/DboBuilder";
|
|
2
|
+
import { getSafeReturnURL } from "../dist/AuthHandler";
|
|
2
3
|
import { test, describe } from "node:test";
|
|
3
4
|
|
|
4
5
|
export const serverOnlyQueries = async (db: DBHandlerServer) => {
|
|
5
|
-
|
|
6
|
+
|
|
6
7
|
await describe('Server Only Queries', async () => {
|
|
7
8
|
await test('Self reference recursion bug', async () => {
|
|
8
9
|
await db.rec.findOne!({ id: 1 }, { select: { "*": 1, rec_ref: "*" } });
|
|
@@ -26,6 +27,6 @@ export const serverOnlyQueries = async (db: DBHandlerServer) => {
|
|
|
26
27
|
if(newRow.col1 !== null) {
|
|
27
28
|
throw "api_table onMount failed: col1 missing. Got: " + JSON.stringify(newRow);
|
|
28
29
|
}
|
|
29
|
-
});
|
|
30
|
+
});
|
|
30
31
|
});
|
|
31
32
|
}
|