prostgles-server 4.2.290 → 4.2.291
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/Auth/AuthHandler.d.ts +10 -4
- package/dist/Auth/AuthHandler.d.ts.map +1 -1
- package/dist/Auth/AuthHandler.js +16 -2
- package/dist/Auth/AuthHandler.js.map +1 -1
- package/dist/Auth/AuthTypes.d.ts +3 -13
- package/dist/Auth/AuthTypes.d.ts.map +1 -1
- package/dist/Auth/endpoints/setCatchAllRequestHandler.d.ts.map +1 -1
- package/dist/Auth/endpoints/setCatchAllRequestHandler.js +17 -9
- package/dist/Auth/endpoints/setCatchAllRequestHandler.js.map +1 -1
- package/dist/Auth/setupAuthRoutes.d.ts.map +1 -1
- package/dist/Auth/setupAuthRoutes.js +2 -26
- package/dist/Auth/setupAuthRoutes.js.map +1 -1
- package/dist/Auth/utils/handleGetUser.d.ts.map +1 -1
- package/dist/Auth/utils/handleGetUser.js +6 -2
- package/dist/Auth/utils/handleGetUser.js.map +1 -1
- package/dist/Auth/utils/removeExpressRoute.d.ts.map +1 -1
- package/dist/Auth/utils/removeExpressRoute.js +4 -5
- package/dist/Auth/utils/removeExpressRoute.js.map +1 -1
- package/dist/Auth/utils/setCookieAndGoToReturnURLIFSet.d.ts +1 -0
- package/dist/Auth/utils/setCookieAndGoToReturnURLIFSet.d.ts.map +1 -1
- package/dist/Auth/utils/setCookieAndGoToReturnURLIFSet.js +22 -4
- package/dist/Auth/utils/setCookieAndGoToReturnURLIFSet.js.map +1 -1
- package/dist/FileManager/FileManager.d.ts +1 -2
- package/dist/FileManager/FileManager.d.ts.map +1 -1
- package/dist/FileManager/FileManager.js +4 -5
- package/dist/FileManager/FileManager.js.map +1 -1
- package/dist/FileManager/initFileManager.js +2 -2
- package/dist/FileManager/initFileManager.js.map +1 -1
- package/dist/ProstglesTypes.d.ts +1 -1
- package/dist/ProstglesTypes.d.ts.map +1 -1
- package/dist/RestApi.d.ts +3 -2
- package/dist/RestApi.d.ts.map +1 -1
- package/dist/RestApi.js +12 -5
- package/dist/RestApi.js.map +1 -1
- package/lib/Auth/AuthHandler.ts +18 -4
- package/lib/Auth/AuthTypes.ts +4 -18
- package/lib/Auth/endpoints/setCatchAllRequestHandler.ts +17 -13
- package/lib/Auth/setupAuthRoutes.ts +2 -29
- package/lib/Auth/utils/handleGetUser.ts +7 -2
- package/lib/Auth/utils/removeExpressRoute.ts +6 -7
- package/lib/Auth/utils/setCookieAndGoToReturnURLIFSet.ts +23 -3
- package/lib/FileManager/FileManager.ts +4 -5
- package/lib/FileManager/initFileManager.ts +2 -2
- package/lib/ProstglesTypes.ts +1 -1
- package/lib/RestApi.ts +14 -7
- package/package.json +1 -1
- package/dist/Auth/utils/getUserOrError.d.ts +0 -10
- package/dist/Auth/utils/getUserOrError.d.ts.map +0 -1
- package/dist/Auth/utils/getUserOrError.js +0 -48
- package/dist/Auth/utils/getUserOrError.js.map +0 -1
- package/lib/Auth/utils/getUserOrError.ts +0 -56
|
@@ -144,11 +144,11 @@ async function initFileManager(prg) {
|
|
|
144
144
|
/**
|
|
145
145
|
* 4. Serve media through express
|
|
146
146
|
*/
|
|
147
|
-
const { fileServeRoute = `/${fileTableName}`, expressApp: app } = fileTable;
|
|
147
|
+
const { fileServePath: fileServeRoute = `/${fileTableName}`, expressApp: app } = fileTable;
|
|
148
148
|
if (fileServeRoute.endsWith("/")) {
|
|
149
149
|
throw `fileServeRoute must not end with a '/'`;
|
|
150
150
|
}
|
|
151
|
-
this.
|
|
151
|
+
this.path = fileServeRoute;
|
|
152
152
|
app.get(this.fileRouteExpress, async (req, res) => {
|
|
153
153
|
const mediaTableHandler = this.dbo[fileTableName];
|
|
154
154
|
if (!mediaTableHandler) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initFileManager.js","sourceRoot":"","sources":["../../lib/FileManager/initFileManager.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"initFileManager.js","sourceRoot":"","sources":["../../lib/FileManager/initFileManager.ts"],"names":[],"mappings":"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"}
|
package/dist/ProstglesTypes.d.ts
CHANGED
|
@@ -38,7 +38,7 @@ export type FileTableConfig = {
|
|
|
38
38
|
/**
|
|
39
39
|
* GET path used in serving media. defaults to /${tableName}
|
|
40
40
|
*/
|
|
41
|
-
|
|
41
|
+
fileServePath?: string;
|
|
42
42
|
/**
|
|
43
43
|
* If defined the the files will not be deleted immediately
|
|
44
44
|
* Instead, the "deleted" field will be updated to the current timestamp and after the day interval provided in "deleteAfterNDays" the files will be deleted
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProstglesTypes.d.ts","sourceRoot":"","sources":["../lib/ProstglesTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,MAAM,iCAAiC,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAElG;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,
|
|
1
|
+
{"version":3,"file":"ProstglesTypes.d.ts","sourceRoot":"","sources":["../lib/ProstglesTypes.ts"],"names":[],"mappings":"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"}
|
package/dist/RestApi.d.ts
CHANGED
|
@@ -29,7 +29,7 @@ export type RestApiConfig = {
|
|
|
29
29
|
/**
|
|
30
30
|
* Defaults to "/api"
|
|
31
31
|
*/
|
|
32
|
-
|
|
32
|
+
path?: string;
|
|
33
33
|
};
|
|
34
34
|
export declare class RestApi {
|
|
35
35
|
prostgles: Prostgles;
|
|
@@ -40,7 +40,8 @@ export declare class RestApi {
|
|
|
40
40
|
schema: string;
|
|
41
41
|
};
|
|
42
42
|
expressApp: Express;
|
|
43
|
-
|
|
43
|
+
path: string;
|
|
44
|
+
constructor({ expressApp, path, prostgles }: RestApiConfig & {
|
|
44
45
|
prostgles: Prostgles;
|
|
45
46
|
});
|
|
46
47
|
destroy: () => void;
|
package/dist/RestApi.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RestApi.d.ts","sourceRoot":"","sources":["../lib/RestApi.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"RestApi.d.ts","sourceRoot":"","sources":["../lib/RestApi.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAIzD,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE;YACN,IAAI,EAAE,MAAM,CAAC;YACb,MAAM,EAAE,YAAY,CAAC;YACrB,IAAI,EAAE,SAAS,CAAC;YAChB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;YACb,KAAK,CAAC,EAAE;gBACN,IAAI,CAAC,EAAE,MAAM,CAAC;gBACd,OAAO,CAAC,EAAE;oBACR,GAAG,CAAC,EAAE,OAAO,CAAC;oBACd,IAAI,CAAC,EAAE,OAAO,CAAC;oBACf,GAAG,CAAC,EAAE,OAAO,CAAC;oBACd,MAAM,CAAC,EAAE,OAAO,CAAC;iBAClB,CAAC;aACH,CAAC;SACH,EAAE,CAAC;KACL,CAAC;CACH,GAAG,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AAE7B,MAAM,MAAM,aAAa,GAAG;IAC1B;;OAEG;IACH,UAAU,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,qBAAa,OAAO;IAClB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE;QACN,EAAE,EAAE,MAAM,CAAC;QACX,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,SAAU;gBACF,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,aAAa,GAAG;QAAE,SAAS,EAAE,SAAS,CAAA;KAAE;IAmBrF,OAAO,aAKL;IACF,YAAY,QAAe,UAAU,OAAO,UAAU,mBAuBpD;IACF,YAAY,QAAe,UAAU,OAAO,UAAU,mBAWpD;IACF,SAAS,QAAe,UAAU,OAAO,UAAU,mBAsBjD;IAEF,kBAAkB,QAAe,UAAU,OAAO,UAAU,mBAoC1D;CACH"}
|
package/dist/RestApi.js
CHANGED
|
@@ -5,18 +5,24 @@ const bodyParser = require("body-parser");
|
|
|
5
5
|
const AuthHandler_1 = require("./Auth/AuthHandler");
|
|
6
6
|
const DboBuilder_1 = require("./DboBuilder/DboBuilder");
|
|
7
7
|
const runClientRequest_1 = require("./runClientRequest");
|
|
8
|
+
const prostgles_types_1 = require("prostgles-types");
|
|
8
9
|
const jsonParser = bodyParser.json();
|
|
9
10
|
class RestApi {
|
|
10
11
|
prostgles;
|
|
11
12
|
routes;
|
|
12
13
|
expressApp;
|
|
13
|
-
|
|
14
|
+
path = "/api";
|
|
15
|
+
constructor({ expressApp, path, prostgles }) {
|
|
16
|
+
if ((0, prostgles_types_1.isDefined)(path) && !path.trim()) {
|
|
17
|
+
throw new Error("path cannot be empty");
|
|
18
|
+
}
|
|
19
|
+
this.path = path || "/api";
|
|
14
20
|
this.prostgles = prostgles;
|
|
15
21
|
this.routes = {
|
|
16
|
-
db: `${
|
|
17
|
-
sql: `${
|
|
18
|
-
methods: `${
|
|
19
|
-
schema: `${
|
|
22
|
+
db: `${path}/db/:tableName/:command`,
|
|
23
|
+
sql: `${path}/db/sql`,
|
|
24
|
+
methods: `${path}/methods/:method`,
|
|
25
|
+
schema: `${path}/schema`,
|
|
20
26
|
};
|
|
21
27
|
this.expressApp = expressApp;
|
|
22
28
|
expressApp.post(this.routes.db, jsonParser, this.onPostTableCommand);
|
|
@@ -28,6 +34,7 @@ class RestApi {
|
|
|
28
34
|
this.expressApp.removeListener(this.routes.db, this.onPostTableCommand);
|
|
29
35
|
this.expressApp.removeListener(this.routes.sql, this.onPostSql);
|
|
30
36
|
this.expressApp.removeListener(this.routes.methods, this.onPostMethod);
|
|
37
|
+
(0, AuthHandler_1.removeExpressRoute)(this.expressApp, [this.path]);
|
|
31
38
|
};
|
|
32
39
|
onPostMethod = async (req, res) => {
|
|
33
40
|
const { method = "" } = req.params;
|
package/dist/RestApi.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RestApi.js","sourceRoot":"","sources":["../lib/RestApi.ts"],"names":[],"mappings":";;;AAAA,0CAA0C;AAE1C,
|
|
1
|
+
{"version":3,"file":"RestApi.js","sourceRoot":"","sources":["../lib/RestApi.ts"],"names":[],"mappings":"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"}
|
package/lib/Auth/AuthHandler.ts
CHANGED
|
@@ -7,8 +7,7 @@ import { login } from "./login";
|
|
|
7
7
|
import { setupAuthRoutes } from "./setupAuthRoutes";
|
|
8
8
|
import { getClientRequestIPsInfo } from "./utils/getClientRequestIPsInfo";
|
|
9
9
|
import { getSidAndUserFromRequest } from "./utils/getSidAndUserFromRequest";
|
|
10
|
-
import {
|
|
11
|
-
import { handleGetUserThrottled } from "./utils/handleGetUser";
|
|
10
|
+
import { handleGetUserThrottled, type GetUserOrRedirected } from "./utils/handleGetUser";
|
|
12
11
|
import { removeExpressRoute, removeExpressRoutesTest } from "./utils/removeExpressRoute";
|
|
13
12
|
import {
|
|
14
13
|
setCookieAndGoToReturnURLIFSet,
|
|
@@ -90,7 +89,22 @@ export class AuthHandler {
|
|
|
90
89
|
setCookieAndGoToReturnURLIFSet = setCookieAndGoToReturnURLIFSet.bind(this);
|
|
91
90
|
validateSessionAndSetCookie = validateSessionAndSetCookie.bind(this);
|
|
92
91
|
handleGetUser = handleGetUserThrottled.bind(this);
|
|
93
|
-
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Used by:
|
|
95
|
+
* - setCatchAllRequestHandler
|
|
96
|
+
* - loginSignupConfig.use
|
|
97
|
+
*/
|
|
98
|
+
getUserOrError = async (clientReq: AuthClientRequest): Promise<GetUserOrRedirected> => {
|
|
99
|
+
try {
|
|
100
|
+
return this.handleGetUser(clientReq);
|
|
101
|
+
} catch (_err) {
|
|
102
|
+
return {
|
|
103
|
+
sid: this.getValidatedSid(clientReq),
|
|
104
|
+
error: { success: false, code: "server-error" },
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
};
|
|
94
108
|
|
|
95
109
|
init = setupAuthRoutes.bind(this);
|
|
96
110
|
|
|
@@ -196,7 +210,7 @@ export class AuthHandler {
|
|
|
196
210
|
getClientAuth = getClientAuth.bind(this);
|
|
197
211
|
}
|
|
198
212
|
|
|
199
|
-
export const matchesRoute = (baseRoute: string
|
|
213
|
+
export const matchesRoute = (baseRoute: string, fullRoute: string) => {
|
|
200
214
|
if (!baseRoute || !fullRoute) return false;
|
|
201
215
|
if (baseRoute === fullRoute) return true;
|
|
202
216
|
const nextChar = fullRoute[baseRoute.length] ?? "";
|
package/lib/Auth/AuthTypes.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Express,
|
|
1
|
+
import { Express, Request, Response } from "express";
|
|
2
2
|
import Mail from "nodemailer/lib/mailer";
|
|
3
3
|
import type { AuthenticateOptions } from "passport";
|
|
4
4
|
import type {
|
|
@@ -11,20 +11,20 @@ import type {
|
|
|
11
11
|
StrategyOptions as GoogleStrategy,
|
|
12
12
|
} from "passport-google-oauth20";
|
|
13
13
|
import type { MicrosoftStrategyOptions } from "passport-microsoft";
|
|
14
|
+
import OAuth2Strategy from "passport-oauth2";
|
|
14
15
|
import {
|
|
15
16
|
AnyObject,
|
|
16
17
|
AuthRequest,
|
|
17
18
|
AuthResponse,
|
|
19
|
+
AuthSocketSchema,
|
|
20
|
+
ClientSchema,
|
|
18
21
|
FieldFilter,
|
|
19
22
|
IdentityProvider,
|
|
20
23
|
UserLike,
|
|
21
|
-
AuthSocketSchema,
|
|
22
|
-
ClientSchema,
|
|
23
24
|
} from "prostgles-types";
|
|
24
25
|
import { DBOFullyTyped } from "../DBSchemaBuilder";
|
|
25
26
|
import { PRGLIOSocket, type CachedSession } from "../DboBuilder/DboBuilderTypes";
|
|
26
27
|
import { DB } from "../Prostgles";
|
|
27
|
-
import OAuth2Strategy from "passport-oauth2";
|
|
28
28
|
import { AUTH_ROUTES_AND_PARAMS } from "./AuthHandler";
|
|
29
29
|
|
|
30
30
|
type Awaitable<T> = T | Promise<T>;
|
|
@@ -400,12 +400,6 @@ export type LoginSignupConfig<S, SUser extends SessionUser> = {
|
|
|
400
400
|
*/
|
|
401
401
|
publicRoutes?: string[];
|
|
402
402
|
|
|
403
|
-
/**
|
|
404
|
-
* Will attach a app.use listener and will expose getUser
|
|
405
|
-
* Used in UI for blocking access
|
|
406
|
-
*/
|
|
407
|
-
use?: ExpressMiddleware<S, SUser>;
|
|
408
|
-
|
|
409
403
|
/**
|
|
410
404
|
* Will be called after a GET request is authorised
|
|
411
405
|
* This means that
|
|
@@ -463,11 +457,3 @@ export type LoginSignupConfig<S, SUser extends SessionUser> = {
|
|
|
463
457
|
|
|
464
458
|
logout: (sid: string | undefined, dbo: DBOFullyTyped<S>, db: DB) => Awaitable<void>;
|
|
465
459
|
};
|
|
466
|
-
|
|
467
|
-
type ExpressMiddleware<S, SUser extends SessionUser> = (
|
|
468
|
-
args: {
|
|
469
|
-
req: ExpressReq;
|
|
470
|
-
res: ExpressRes;
|
|
471
|
-
next: NextFunction;
|
|
472
|
-
} & AuthRequestParams<S, SUser>
|
|
473
|
-
) => void | Promise<void>;
|
|
@@ -3,20 +3,18 @@ import { DBOFullyTyped } from "../../DBSchemaBuilder";
|
|
|
3
3
|
import { AUTH_ROUTES_AND_PARAMS, AuthHandler, HTTP_FAIL_CODES, matchesRoute } from "../AuthHandler";
|
|
4
4
|
import { AuthClientRequest } from "../AuthTypes";
|
|
5
5
|
import { getReturnUrl } from "../utils/getReturnUrl";
|
|
6
|
+
import { isDefined } from "prostgles-types";
|
|
6
7
|
|
|
7
8
|
export function setCatchAllRequestHandler(this: AuthHandler, app: e.Express) {
|
|
8
9
|
const requestHandlerCatchAll: RequestHandler = async (req, res, next) => {
|
|
9
10
|
const { onGetRequestOK } = this.opts.loginSignupConfig ?? {};
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
)
|
|
16
|
-
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
if (matchesRoute(AUTH_ROUTES_AND_PARAMS.loginWithProvider, req.path)) {
|
|
11
|
+
const { restApi, fileManager, authHandler } = this.prostgles;
|
|
12
|
+
const pathsHandledByProstgles = [
|
|
13
|
+
restApi?.path,
|
|
14
|
+
fileManager?.path,
|
|
15
|
+
authHandler && AUTH_ROUTES_AND_PARAMS.loginWithProvider,
|
|
16
|
+
].filter(isDefined);
|
|
17
|
+
if (pathsHandledByProstgles.some((path) => matchesRoute(path, req.path))) {
|
|
20
18
|
next();
|
|
21
19
|
return;
|
|
22
20
|
}
|
|
@@ -38,7 +36,7 @@ export function setCatchAllRequestHandler(this: AuthHandler, app: e.Express) {
|
|
|
38
36
|
const returnURL = getReturnUrl(req);
|
|
39
37
|
|
|
40
38
|
/**
|
|
41
|
-
* Requesting a User route
|
|
39
|
+
* Requesting a User route (must be logged in)
|
|
42
40
|
*/
|
|
43
41
|
if (this.isUserRoute(req.path)) {
|
|
44
42
|
/* Check auth. Redirect to login if unauthorized */
|
|
@@ -50,12 +48,18 @@ export function setCatchAllRequestHandler(this: AuthHandler, app: e.Express) {
|
|
|
50
48
|
return;
|
|
51
49
|
}
|
|
52
50
|
|
|
53
|
-
|
|
51
|
+
/**
|
|
52
|
+
* If authorized and going to returnUrl then redirect. Otherwise serve file
|
|
53
|
+
* */
|
|
54
54
|
} else if (returnURL && (await isLoggedInUser())) {
|
|
55
55
|
res.redirect(returnURL);
|
|
56
56
|
return;
|
|
57
57
|
|
|
58
|
-
/**
|
|
58
|
+
/**
|
|
59
|
+
* Visiting login:
|
|
60
|
+
* 1) If logged in and not anonymous then redirect to main page
|
|
61
|
+
* 2) If logged in and anonymous then allow visiting /login (it will be caught earlier by new-session-redirect)
|
|
62
|
+
* */
|
|
59
63
|
} else if (matchesRoute(AUTH_ROUTES_AND_PARAMS.login, req.path)) {
|
|
60
64
|
const { user, isAnonymous, error } = await getUser();
|
|
61
65
|
if (error) {
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { RequestHandler } from "express";
|
|
2
|
-
import {
|
|
3
|
-
import { AuthHandler, getClientRequestIPsInfo, HTTP_FAIL_CODES } from "./AuthHandler";
|
|
2
|
+
import { AuthHandler, getClientRequestIPsInfo } from "./AuthHandler";
|
|
4
3
|
import { setCatchAllRequestHandler } from "./endpoints/setCatchAllRequestHandler";
|
|
5
4
|
import { setLoginRequestHandler } from "./endpoints/setLoginRequestHandler";
|
|
6
5
|
import { setLogoutRequestHandler } from "./endpoints/setLogoutRequestHandler";
|
|
@@ -23,7 +22,6 @@ export function setupAuthRoutes(this: AuthHandler) {
|
|
|
23
22
|
app,
|
|
24
23
|
publicRoutes = [],
|
|
25
24
|
onMagicLinkOrOTP,
|
|
26
|
-
use,
|
|
27
25
|
loginWithOAuth,
|
|
28
26
|
signupWithEmail: signupWithEmailAndPassword,
|
|
29
27
|
} = loginSignupConfig;
|
|
@@ -56,38 +54,13 @@ export function setupAuthRoutes(this: AuthHandler) {
|
|
|
56
54
|
|
|
57
55
|
if (errorInfoOrSession && "session" in errorInfoOrSession) {
|
|
58
56
|
const { session } = errorInfoOrSession;
|
|
59
|
-
this.validateSessionAndSetCookie(session, { req, res });
|
|
60
|
-
return;
|
|
57
|
+
return this.validateSessionAndSetCookie(session, { req, res });
|
|
61
58
|
}
|
|
62
59
|
next();
|
|
63
60
|
};
|
|
64
61
|
upsertNamedExpressMiddleware(app, prostglesUseMiddleware, "prostglesonUseOrSocketConnected");
|
|
65
62
|
}
|
|
66
63
|
|
|
67
|
-
if (use) {
|
|
68
|
-
const prostglesUseMiddleware: RequestHandler = (req, res, next) => {
|
|
69
|
-
void use({
|
|
70
|
-
req,
|
|
71
|
-
res,
|
|
72
|
-
next,
|
|
73
|
-
getUser: async () => {
|
|
74
|
-
const userOrErr = await this.getUserOrError({ httpReq: req, res });
|
|
75
|
-
if (userOrErr === "new-session-redirect") {
|
|
76
|
-
throw "new-session-redirect";
|
|
77
|
-
}
|
|
78
|
-
if (userOrErr.error) {
|
|
79
|
-
res.status(HTTP_FAIL_CODES.BAD_REQUEST).json(userOrErr.error);
|
|
80
|
-
throw userOrErr.error;
|
|
81
|
-
}
|
|
82
|
-
return userOrErr;
|
|
83
|
-
},
|
|
84
|
-
dbo: this.dbo as DBOFullyTyped,
|
|
85
|
-
db: this.db,
|
|
86
|
-
});
|
|
87
|
-
};
|
|
88
|
-
upsertNamedExpressMiddleware(app, prostglesUseMiddleware, "prostglesUse");
|
|
89
|
-
}
|
|
90
|
-
|
|
91
64
|
if (onMagicLinkOrOTP) {
|
|
92
65
|
setMagicLinkOrOTPRequestHandler.bind(this)(onMagicLinkOrOTP, app);
|
|
93
66
|
}
|
|
@@ -3,6 +3,7 @@ import type { DBOFullyTyped } from "../../DBSchemaBuilder";
|
|
|
3
3
|
import { getClientRequestIPsInfo, type AuthHandler } from "../AuthHandler";
|
|
4
4
|
import type { AuthClientRequest, AuthResultOrError, AuthResultWithSID } from "../AuthTypes";
|
|
5
5
|
import { throttledAuthCall } from "./throttledReject";
|
|
6
|
+
import type { LoginResponseHandler } from "../endpoints/setLoginRequestHandler";
|
|
6
7
|
|
|
7
8
|
export type GetUserOrRedirected = AuthResultWithSID | "new-session-redirect";
|
|
8
9
|
|
|
@@ -52,10 +53,14 @@ export async function handleGetUserThrottled(
|
|
|
52
53
|
const clientInfo = clientInfoOrErr;
|
|
53
54
|
|
|
54
55
|
if (clientInfo && "type" in clientInfo) {
|
|
55
|
-
if (!("httpReq" in clientReq) || !clientReq.httpReq)
|
|
56
|
+
if (!("httpReq" in clientReq) || !clientReq.httpReq) {
|
|
56
57
|
throw "httpReq missing. new-session not implemented for sockets.";
|
|
58
|
+
}
|
|
57
59
|
const { httpReq, res } = clientReq;
|
|
58
|
-
this.validateSessionAndSetCookie(clientInfo.session, {
|
|
60
|
+
this.validateSessionAndSetCookie(clientInfo.session, {
|
|
61
|
+
req: httpReq,
|
|
62
|
+
res: res as LoginResponseHandler,
|
|
63
|
+
});
|
|
59
64
|
return "new-session-redirect" as const;
|
|
60
65
|
}
|
|
61
66
|
|
|
@@ -12,13 +12,12 @@ export const removeExpressRoute = (
|
|
|
12
12
|
if (routes) {
|
|
13
13
|
app._router!.stack = routes.filter((route) => {
|
|
14
14
|
const path = route.route?.path;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
(
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
return true;
|
|
15
|
+
const matchesForRemoval =
|
|
16
|
+
path &&
|
|
17
|
+
routePaths.some((routePath) => matchesRoute(routePath, path)) &&
|
|
18
|
+
(!method || route.route?.methods?.[method]);
|
|
19
|
+
|
|
20
|
+
return !matchesForRemoval;
|
|
22
21
|
});
|
|
23
22
|
}
|
|
24
23
|
};
|
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
import { HTTP_FAIL_CODES, type AuthHandler } from "../AuthHandler";
|
|
1
|
+
import { AUTH_ROUTES_AND_PARAMS, HTTP_FAIL_CODES, type AuthHandler } from "../AuthHandler";
|
|
2
2
|
import type { ExpressReq } from "../AuthTypes";
|
|
3
3
|
import type { LoginResponseHandler } from "../endpoints/setLoginRequestHandler";
|
|
4
4
|
import { getBasicSessionErrorCode } from "../login";
|
|
5
5
|
import { getReturnUrl } from "./getReturnUrl";
|
|
6
|
+
import { getSafeReturnURL } from "./getSafeReturnURL";
|
|
6
7
|
|
|
8
|
+
export type NewSessionRedirect = "isAnonimous" | "normalUser";
|
|
7
9
|
export function validateSessionAndSetCookie(
|
|
8
10
|
this: AuthHandler,
|
|
9
11
|
cookie: { sid: string; expires: number },
|
|
10
12
|
requestHandler: { req: ExpressReq; res: LoginResponseHandler }
|
|
13
|
+
// newSessionRedirect: NewSessionRedirect | undefined
|
|
11
14
|
) {
|
|
12
15
|
const sessionErrorCode = getBasicSessionErrorCode(cookie);
|
|
13
16
|
if (sessionErrorCode) {
|
|
@@ -25,6 +28,7 @@ export function setCookieAndGoToReturnURLIFSet(
|
|
|
25
28
|
this: AuthHandler,
|
|
26
29
|
cookie: { sid: string; expires: number },
|
|
27
30
|
requestHandler: { req: ExpressReq; res: LoginResponseHandler }
|
|
31
|
+
// newSessionRedirect: NewSessionRedirect | undefined
|
|
28
32
|
) {
|
|
29
33
|
const { sid, expires } = cookie;
|
|
30
34
|
const { res, req } = requestHandler;
|
|
@@ -57,6 +61,22 @@ export function setCookieAndGoToReturnURLIFSet(
|
|
|
57
61
|
};
|
|
58
62
|
const cookieData = sid;
|
|
59
63
|
res.cookie(this.sidKeyName, cookieData, cookieOpts);
|
|
60
|
-
const
|
|
61
|
-
|
|
64
|
+
const safeReturnUrl = getReturnUrl(req);
|
|
65
|
+
if (safeReturnUrl) {
|
|
66
|
+
return res.redirect(safeReturnUrl);
|
|
67
|
+
}
|
|
68
|
+
const safeOriginalUrl = getSafeReturnURL(
|
|
69
|
+
req.originalUrl,
|
|
70
|
+
AUTH_ROUTES_AND_PARAMS.returnUrlParamName
|
|
71
|
+
);
|
|
72
|
+
if (safeOriginalUrl) {
|
|
73
|
+
// if (safeOriginalUrl === AUTH_ROUTES_AND_PARAMS.login) {
|
|
74
|
+
// if (newSessionRedirect === "isAnonimous") {
|
|
75
|
+
// return res.redirect(AUTH_ROUTES_AND_PARAMS.login);
|
|
76
|
+
// }
|
|
77
|
+
// } else {
|
|
78
|
+
// }
|
|
79
|
+
return res.redirect(safeOriginalUrl);
|
|
80
|
+
}
|
|
81
|
+
return res.redirect("/");
|
|
62
82
|
}
|
|
@@ -122,11 +122,10 @@ export class FileManager {
|
|
|
122
122
|
|
|
123
123
|
tableName?: string;
|
|
124
124
|
|
|
125
|
-
|
|
125
|
+
path?: string;
|
|
126
126
|
get fileRouteExpress() {
|
|
127
|
-
return this.
|
|
127
|
+
return this.path + "/:name";
|
|
128
128
|
}
|
|
129
|
-
private checkInterval?: NodeJS.Timeout;
|
|
130
129
|
|
|
131
130
|
constructor(config: FileManager["config"], imageOptions?: ImageOptions) {
|
|
132
131
|
this.config = config;
|
|
@@ -138,7 +137,7 @@ export class FileManager {
|
|
|
138
137
|
|
|
139
138
|
const fullConfig = this.prostgles?.opts.fileTable;
|
|
140
139
|
if (fullConfig?.delayedDelete) {
|
|
141
|
-
|
|
140
|
+
setInterval(
|
|
142
141
|
() => {
|
|
143
142
|
void (async () => {
|
|
144
143
|
const fileTable = fullConfig.tableName;
|
|
@@ -193,7 +192,7 @@ export class FileManager {
|
|
|
193
192
|
|
|
194
193
|
getValidatedFileType = getValidatedFileType.bind(this);
|
|
195
194
|
|
|
196
|
-
getLocalFileUrl = (name: string) => (this.
|
|
195
|
+
getLocalFileUrl = (name: string) => (this.path ? `${this.path}/${name}` : "");
|
|
197
196
|
|
|
198
197
|
checkFreeSpace = async (folderPath: string, fileSize = 0) => {
|
|
199
198
|
if (!this.cloudClient && "localFolderPath" in this.config) {
|
|
@@ -162,12 +162,12 @@ export async function initFileManager(this: FileManager, prg: Prostgles) {
|
|
|
162
162
|
/**
|
|
163
163
|
* 4. Serve media through express
|
|
164
164
|
*/
|
|
165
|
-
const { fileServeRoute = `/${fileTableName}`, expressApp: app } = fileTable;
|
|
165
|
+
const { fileServePath: fileServeRoute = `/${fileTableName}`, expressApp: app } = fileTable;
|
|
166
166
|
|
|
167
167
|
if (fileServeRoute.endsWith("/")) {
|
|
168
168
|
throw `fileServeRoute must not end with a '/'`;
|
|
169
169
|
}
|
|
170
|
-
this.
|
|
170
|
+
this.path = fileServeRoute;
|
|
171
171
|
|
|
172
172
|
app.get(this.fileRouteExpress, async (req, res) => {
|
|
173
173
|
const mediaTableHandler = this.dbo[fileTableName] as unknown as TableHandler | undefined;
|
package/lib/ProstglesTypes.ts
CHANGED
package/lib/RestApi.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import * as bodyParser from "body-parser";
|
|
2
2
|
import { Express } from "express";
|
|
3
|
-
import { HTTP_FAIL_CODES } from "./Auth/AuthHandler";
|
|
3
|
+
import { HTTP_FAIL_CODES, removeExpressRoute } from "./Auth/AuthHandler";
|
|
4
4
|
import { ExpressReq, ExpressRes } from "./Auth/AuthTypes";
|
|
5
5
|
import { getSerializedClientErrorFromPGError } from "./DboBuilder/DboBuilder";
|
|
6
6
|
import { Prostgles } from "./Prostgles";
|
|
7
7
|
import { runClientMethod, runClientRequest, runClientSqlRequest } from "./runClientRequest";
|
|
8
8
|
import { VoidFunction } from "./SchemaWatch/SchemaWatch";
|
|
9
|
+
import { isDefined } from "prostgles-types";
|
|
9
10
|
const jsonParser = bodyParser.json();
|
|
10
11
|
|
|
11
12
|
export type ExpressApp = {
|
|
@@ -37,7 +38,7 @@ export type RestApiConfig = {
|
|
|
37
38
|
/**
|
|
38
39
|
* Defaults to "/api"
|
|
39
40
|
*/
|
|
40
|
-
|
|
41
|
+
path?: string;
|
|
41
42
|
};
|
|
42
43
|
|
|
43
44
|
export class RestApi {
|
|
@@ -49,13 +50,18 @@ export class RestApi {
|
|
|
49
50
|
schema: string;
|
|
50
51
|
};
|
|
51
52
|
expressApp: Express;
|
|
52
|
-
|
|
53
|
+
path = "/api";
|
|
54
|
+
constructor({ expressApp, path, prostgles }: RestApiConfig & { prostgles: Prostgles }) {
|
|
55
|
+
if (isDefined(path) && !path.trim()) {
|
|
56
|
+
throw new Error("path cannot be empty");
|
|
57
|
+
}
|
|
58
|
+
this.path = path || "/api";
|
|
53
59
|
this.prostgles = prostgles;
|
|
54
60
|
this.routes = {
|
|
55
|
-
db: `${
|
|
56
|
-
sql: `${
|
|
57
|
-
methods: `${
|
|
58
|
-
schema: `${
|
|
61
|
+
db: `${path}/db/:tableName/:command`,
|
|
62
|
+
sql: `${path}/db/sql`,
|
|
63
|
+
methods: `${path}/methods/:method`,
|
|
64
|
+
schema: `${path}/schema`,
|
|
59
65
|
};
|
|
60
66
|
this.expressApp = expressApp;
|
|
61
67
|
expressApp.post(this.routes.db, jsonParser, this.onPostTableCommand);
|
|
@@ -68,6 +74,7 @@ export class RestApi {
|
|
|
68
74
|
this.expressApp.removeListener(this.routes.db, this.onPostTableCommand);
|
|
69
75
|
this.expressApp.removeListener(this.routes.sql, this.onPostSql);
|
|
70
76
|
this.expressApp.removeListener(this.routes.methods, this.onPostMethod);
|
|
77
|
+
removeExpressRoute(this.expressApp, [this.path]);
|
|
71
78
|
};
|
|
72
79
|
onPostMethod = async (req: ExpressReq, res: ExpressRes) => {
|
|
73
80
|
const { method = "" } = req.params;
|
package/package.json
CHANGED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { AuthHandler } from "../AuthHandler";
|
|
2
|
-
import { AuthClientRequest } from "../AuthTypes";
|
|
3
|
-
import { type GetUserOrRedirected } from "./handleGetUser";
|
|
4
|
-
/**
|
|
5
|
-
* Used by:
|
|
6
|
-
* - setCatchAllRequestHandler
|
|
7
|
-
* - loginSignupConfig.use
|
|
8
|
-
*/
|
|
9
|
-
export declare function getUserOrError(this: AuthHandler, clientReq: AuthClientRequest): Promise<GetUserOrRedirected>;
|
|
10
|
-
//# sourceMappingURL=getUserOrError.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getUserOrError.d.ts","sourceRoot":"","sources":["../../../lib/Auth/utils/getUserOrError.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAqB,MAAM,cAAc,CAAC;AAEpE,OAAO,EAAe,KAAK,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAGxE;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,WAAW,EACjB,SAAS,EAAE,iBAAiB,GAC3B,OAAO,CAAC,mBAAmB,CAAC,CAuC9B"}
|