prostgles-server 4.2.134 → 4.2.136
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 +66 -0
- package/dist/Auth/AuthHandler.d.ts.map +1 -0
- package/dist/Auth/AuthHandler.js +425 -0
- package/dist/Auth/AuthHandler.js.map +1 -0
- package/dist/Auth/AuthTypes.d.ts +218 -0
- package/dist/Auth/AuthTypes.d.ts.map +1 -0
- package/dist/Auth/AuthTypes.js +3 -0
- package/dist/Auth/AuthTypes.js.map +1 -0
- package/dist/Auth/authInit.d.ts +3 -0
- package/dist/Auth/authInit.d.ts.map +1 -0
- package/dist/Auth/authInit.js +155 -0
- package/dist/Auth/authInit.js.map +1 -0
- package/dist/Auth/getSafeReturnURL.d.ts +2 -0
- package/dist/Auth/getSafeReturnURL.d.ts.map +1 -0
- package/dist/Auth/getSafeReturnURL.js +35 -0
- package/dist/Auth/getSafeReturnURL.js.map +1 -0
- package/dist/Auth/setAuthSignup.d.ts +5 -0
- package/dist/Auth/setAuthSignup.d.ts.map +1 -0
- package/dist/Auth/setAuthSignup.js +85 -0
- package/dist/Auth/setAuthSignup.js.map +1 -0
- package/dist/DboBuilder/DboBuilderTypes.d.ts +3 -3
- package/dist/DboBuilder/DboBuilderTypes.d.ts.map +1 -1
- package/dist/DboBuilder/DboBuilderTypes.js.map +1 -1
- package/dist/DboBuilder/QueryBuilder/getNewQuery.d.ts +1 -1
- package/dist/DboBuilder/ViewHandler/ViewHandler.d.ts +1 -1
- package/dist/DboBuilder/runSQL.d.ts +1 -1
- package/dist/FileManager/initFileManager.js +1 -1
- package/dist/FileManager/initFileManager.js.map +1 -1
- package/dist/Filtering.d.ts +1 -1
- package/dist/Prostgles.d.ts +1 -1
- package/dist/Prostgles.d.ts.map +1 -1
- package/dist/Prostgles.js +1 -1
- package/dist/Prostgles.js.map +1 -1
- package/dist/ProstglesTypes.d.ts +1 -1
- package/dist/ProstglesTypes.d.ts.map +1 -1
- package/dist/PublishParser/PublishParser.d.ts +2 -2
- package/dist/PublishParser/PublishParser.d.ts.map +1 -1
- package/dist/PublishParser/PublishParser.js.map +1 -1
- package/dist/PublishParser/getFileTableRules.d.ts +1 -1
- package/dist/PublishParser/getFileTableRules.d.ts.map +1 -1
- package/dist/PublishParser/getSchemaFromPublish.d.ts +1 -1
- package/dist/PublishParser/getSchemaFromPublish.d.ts.map +1 -1
- package/dist/PublishParser/getTableRulesWithoutFileTable.d.ts +1 -1
- package/dist/PublishParser/getTableRulesWithoutFileTable.d.ts.map +1 -1
- package/dist/PublishParser/publishTypesAndUtils.d.ts +1 -1
- package/dist/PublishParser/publishTypesAndUtils.d.ts.map +1 -1
- package/dist/PublishParser/publishTypesAndUtils.js.map +1 -1
- package/dist/RestApi.d.ts +1 -1
- package/dist/RestApi.d.ts.map +1 -1
- package/dist/RestApi.js +1 -1
- package/dist/RestApi.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/initProstgles.js +1 -1
- package/dist/initProstgles.js.map +1 -1
- package/dist/runClientRequest.d.ts +1 -1
- package/dist/runClientRequest.d.ts.map +1 -1
- package/dist/runClientRequest.js +1 -1
- package/dist/runClientRequest.js.map +1 -1
- package/lib/Auth/AuthHandler.ts +474 -0
- package/lib/Auth/AuthTypes.ts +247 -0
- package/lib/Auth/authInit.ts +166 -0
- package/lib/Auth/getSafeReturnURL.ts +35 -0
- package/lib/Auth/setAuthSignup.ts +100 -0
- package/lib/DBSchemaBuilder.ts +1 -1
- package/lib/DboBuilder/DboBuilderTypes.ts +4 -3
- package/lib/FileManager/initFileManager.ts +1 -1
- package/lib/Prostgles.ts +2 -2
- package/lib/ProstglesTypes.ts +1 -1
- package/lib/PublishParser/PublishParser.ts +3 -3
- package/lib/PublishParser/getFileTableRules.ts +1 -1
- package/lib/PublishParser/getSchemaFromPublish.ts +1 -1
- package/lib/PublishParser/getTableRulesWithoutFileTable.ts +1 -1
- package/lib/PublishParser/publishTypesAndUtils.ts +1 -1
- package/lib/RestApi.ts +2 -1
- package/lib/index.ts +1 -1
- package/lib/initProstgles.ts +1 -1
- package/lib/runClientRequest.ts +3 -3
- package/package.json +14 -4
- package/tests/client/index.ts +9 -7
- package/tests/client/package-lock.json +2827 -143
- package/tests/client/package.json +1 -1
- package/tests/client/tsconfig.json +0 -6
- package/tests/clientFileTests.spec.ts +2 -3
- package/tests/clientOnlyQueries.spec.ts +2 -2
- package/tests/clientRestApi.spec.ts +2 -2
- package/tests/server/index.ts +1 -1
- package/tests/server/package-lock.json +62 -77
- package/tests/server/package.json +2 -2
- package/tests/server/tsconfig.json +1 -2
- package/tests/serverOnlyQueries.spec.ts +2 -2
- package/tsconfig.json +0 -1
- package/lib/AuthHandler.ts +0 -816
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
import { Express, NextFunction, Request, Response } from "express";
|
|
2
|
+
import { AnyObject, FieldFilter, UserLike } from "prostgles-types";
|
|
3
|
+
import { DB } from "../Prostgles";
|
|
4
|
+
import { DBOFullyTyped } from "../DBSchemaBuilder";
|
|
5
|
+
import { PRGLIOSocket } from "../DboBuilder/DboBuilderTypes";
|
|
6
|
+
import type { AuthenticateOptions } from "passport";
|
|
7
|
+
import type { StrategyOptions as GoogleStrategy, Profile as GoogleProfile } from "passport-google-oauth20";
|
|
8
|
+
import type { StrategyOptions as GitHubStrategy, Profile as GitHubProfile } from "passport-github2";
|
|
9
|
+
import type { MicrosoftStrategyOptions } from "passport-microsoft";
|
|
10
|
+
import type { StrategyOptions as FacebookStrategy, Profile as FacebookProfile } from "passport-facebook";
|
|
11
|
+
type Awaitable<T> = T | Promise<T>;
|
|
12
|
+
export type ExpressReq = Request;
|
|
13
|
+
export type ExpressRes = Response;
|
|
14
|
+
export type LoginClientInfo = {
|
|
15
|
+
ip_address: string;
|
|
16
|
+
ip_address_remote: string | undefined;
|
|
17
|
+
x_real_ip: string | undefined;
|
|
18
|
+
user_agent: string | undefined;
|
|
19
|
+
};
|
|
20
|
+
export type BasicSession = {
|
|
21
|
+
/** Must be hard to bruteforce */
|
|
22
|
+
sid: string;
|
|
23
|
+
/** UNIX millisecond timestamp */
|
|
24
|
+
expires: number;
|
|
25
|
+
/** On expired */
|
|
26
|
+
onExpiration: "redirect" | "show_error";
|
|
27
|
+
};
|
|
28
|
+
export type AuthClientRequest = {
|
|
29
|
+
socket: PRGLIOSocket;
|
|
30
|
+
} | {
|
|
31
|
+
httpReq: ExpressReq;
|
|
32
|
+
};
|
|
33
|
+
type ThirdPartyProviders = {
|
|
34
|
+
facebook?: Pick<FacebookStrategy, "clientID" | "clientSecret"> & {
|
|
35
|
+
authOpts: AuthenticateOptions;
|
|
36
|
+
};
|
|
37
|
+
google?: Pick<GoogleStrategy, "clientID" | "clientSecret"> & {
|
|
38
|
+
authOpts: AuthenticateOptions;
|
|
39
|
+
};
|
|
40
|
+
github?: Pick<GitHubStrategy, "clientID" | "clientSecret"> & {
|
|
41
|
+
authOpts: AuthenticateOptions;
|
|
42
|
+
};
|
|
43
|
+
microsoft?: Pick<MicrosoftStrategyOptions, "clientID" | "clientSecret"> & {
|
|
44
|
+
authOpts: AuthenticateOptions;
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
type SMTPConfig = {
|
|
48
|
+
type: "aws-ses" | "smtp";
|
|
49
|
+
host: string;
|
|
50
|
+
port: number;
|
|
51
|
+
secure: boolean;
|
|
52
|
+
auth: {
|
|
53
|
+
user: string;
|
|
54
|
+
pass: string;
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
type RegistrationProviders = ThirdPartyProviders & {
|
|
58
|
+
email: {
|
|
59
|
+
signupType: "withMagicLink" | "withPassword";
|
|
60
|
+
smtp: SMTPConfig;
|
|
61
|
+
} | {
|
|
62
|
+
signupType: "withPassword";
|
|
63
|
+
/**
|
|
64
|
+
* If provided, the user will be required to confirm their email address
|
|
65
|
+
*/
|
|
66
|
+
smtp?: SMTPConfig;
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
type RegistrationData = {
|
|
70
|
+
provider: "email";
|
|
71
|
+
profile: {
|
|
72
|
+
username: string;
|
|
73
|
+
password: string;
|
|
74
|
+
};
|
|
75
|
+
} | {
|
|
76
|
+
provider: "google";
|
|
77
|
+
profile: GoogleProfile;
|
|
78
|
+
accessToken: string;
|
|
79
|
+
refreshToken: string;
|
|
80
|
+
} | {
|
|
81
|
+
provider: "github";
|
|
82
|
+
profile: GitHubProfile;
|
|
83
|
+
accessToken: string;
|
|
84
|
+
refreshToken: string;
|
|
85
|
+
} | {
|
|
86
|
+
provider: "facebook";
|
|
87
|
+
profile: FacebookProfile;
|
|
88
|
+
accessToken: string;
|
|
89
|
+
refreshToken: string;
|
|
90
|
+
} | {
|
|
91
|
+
provider: "microsoft";
|
|
92
|
+
profile: any;
|
|
93
|
+
accessToken: string;
|
|
94
|
+
refreshToken: string;
|
|
95
|
+
};
|
|
96
|
+
export type AuthRegistrationConfig = RegistrationProviders & {
|
|
97
|
+
/**
|
|
98
|
+
* Required for social login callback
|
|
99
|
+
*/
|
|
100
|
+
websiteUrl: string;
|
|
101
|
+
/**
|
|
102
|
+
* Do something with the registered user
|
|
103
|
+
*/
|
|
104
|
+
onRegister: (data: RegistrationData) => Promise<any>;
|
|
105
|
+
};
|
|
106
|
+
export type SessionUser<ServerUser extends UserLike = UserLike, ClientUser extends UserLike = UserLike> = {
|
|
107
|
+
/**
|
|
108
|
+
* This user will be available in all serverside prostgles options
|
|
109
|
+
* id and type values will be available in the prostgles.user session variable in postgres
|
|
110
|
+
* */
|
|
111
|
+
user: ServerUser;
|
|
112
|
+
/**
|
|
113
|
+
* Controls which fields from user are available in postgres session variable
|
|
114
|
+
*/
|
|
115
|
+
sessionFields?: FieldFilter<ServerUser>;
|
|
116
|
+
/**
|
|
117
|
+
* User data sent to the authenticated client
|
|
118
|
+
*/
|
|
119
|
+
clientUser: ClientUser;
|
|
120
|
+
};
|
|
121
|
+
export type AuthResult<SU = SessionUser> = SU & {
|
|
122
|
+
sid: string;
|
|
123
|
+
} | {
|
|
124
|
+
user?: undefined;
|
|
125
|
+
clientUser?: undefined;
|
|
126
|
+
sid?: string;
|
|
127
|
+
} | undefined;
|
|
128
|
+
export type AuthRequestParams<S, SUser extends SessionUser> = {
|
|
129
|
+
db: DB;
|
|
130
|
+
dbo: DBOFullyTyped<S>;
|
|
131
|
+
getUser: () => Promise<AuthResult<SUser>>;
|
|
132
|
+
};
|
|
133
|
+
export type Auth<S = void, SUser extends SessionUser = SessionUser> = {
|
|
134
|
+
/**
|
|
135
|
+
* Name of the cookie or socket hadnshake query param that represents the session id.
|
|
136
|
+
* Defaults to "session_id"
|
|
137
|
+
*/
|
|
138
|
+
sidKeyName?: string;
|
|
139
|
+
/**
|
|
140
|
+
* Response time rounding in milliseconds to prevent timing attacks on login. Login response time should always be a multiple of this value. Defaults to 500 milliseconds
|
|
141
|
+
*/
|
|
142
|
+
responseThrottle?: number;
|
|
143
|
+
expressConfig?: {
|
|
144
|
+
/**
|
|
145
|
+
* Express app instance. If provided Prostgles will attempt to set sidKeyName to user cookie
|
|
146
|
+
*/
|
|
147
|
+
app: Express;
|
|
148
|
+
/**
|
|
149
|
+
* Used in allowing logging in through express. Defaults to /login
|
|
150
|
+
*/
|
|
151
|
+
loginRoute?: string;
|
|
152
|
+
/**
|
|
153
|
+
* Used in allowing logging out through express. Defaults to /logout
|
|
154
|
+
*/
|
|
155
|
+
logoutGetPath?: string;
|
|
156
|
+
/**
|
|
157
|
+
* Options used in setting the cookie after a successful login
|
|
158
|
+
*/
|
|
159
|
+
cookieOptions?: AnyObject;
|
|
160
|
+
/**
|
|
161
|
+
* False by default. If false and userRoutes are provided then the socket will request window.location.reload if the current url is on a user route.
|
|
162
|
+
*/
|
|
163
|
+
disableSocketAuthGuard?: boolean;
|
|
164
|
+
/**
|
|
165
|
+
* If provided, any client requests to NOT these routes (or their subroutes) will be redirected to loginRoute (if logged in) and then redirected back to the initial route after logging in
|
|
166
|
+
* If logged in the user is allowed to access these routes
|
|
167
|
+
*/
|
|
168
|
+
publicRoutes?: string[];
|
|
169
|
+
/**
|
|
170
|
+
* Will attach a app.use listener and will expose getUser
|
|
171
|
+
* Used for blocking access
|
|
172
|
+
*/
|
|
173
|
+
use?: (args: {
|
|
174
|
+
req: ExpressReq;
|
|
175
|
+
res: ExpressRes;
|
|
176
|
+
next: NextFunction;
|
|
177
|
+
} & AuthRequestParams<S, SUser>) => void | Promise<void>;
|
|
178
|
+
/**
|
|
179
|
+
* Will be called after a GET request is authorised
|
|
180
|
+
* This means that
|
|
181
|
+
*/
|
|
182
|
+
onGetRequestOK?: (req: ExpressReq, res: ExpressRes, params: AuthRequestParams<S, SUser>) => any;
|
|
183
|
+
/**
|
|
184
|
+
* Name of get url parameter used in redirecting user after successful login.
|
|
185
|
+
* Defaults to "returnURL"
|
|
186
|
+
*/
|
|
187
|
+
returnUrlParamName?: string;
|
|
188
|
+
/**
|
|
189
|
+
* If defined, will check the magic link id and log in the user and redirect to the returnUrl if set
|
|
190
|
+
*/
|
|
191
|
+
magicLinks?: {
|
|
192
|
+
/**
|
|
193
|
+
* Will default to /magic-link
|
|
194
|
+
*/
|
|
195
|
+
route?: string;
|
|
196
|
+
/**
|
|
197
|
+
* Used in creating a session/logging in using a magic link
|
|
198
|
+
*/
|
|
199
|
+
check: (magicId: string, dbo: DBOFullyTyped<S>, db: DB, client: LoginClientInfo) => Awaitable<BasicSession | undefined>;
|
|
200
|
+
};
|
|
201
|
+
registrations?: AuthRegistrationConfig;
|
|
202
|
+
};
|
|
203
|
+
/**
|
|
204
|
+
* undefined sid is allowed to enable public users
|
|
205
|
+
*/
|
|
206
|
+
getUser: (sid: string | undefined, dbo: DBOFullyTyped<S>, db: DB, client: AuthClientRequest & LoginClientInfo) => Awaitable<AuthResult<SUser>>;
|
|
207
|
+
register?: (params: AnyObject, dbo: DBOFullyTyped<S>, db: DB) => Awaitable<BasicSession> | BasicSession;
|
|
208
|
+
login?: (params: AnyObject, dbo: DBOFullyTyped<S>, db: DB, client: LoginClientInfo) => Awaitable<BasicSession> | BasicSession;
|
|
209
|
+
logout?: (sid: string | undefined, dbo: DBOFullyTyped<S>, db: DB) => Awaitable<any>;
|
|
210
|
+
/**
|
|
211
|
+
* If provided then session info will be saved on socket.__prglCache and reused from there
|
|
212
|
+
*/
|
|
213
|
+
cacheSession?: {
|
|
214
|
+
getSession: (sid: string | undefined, dbo: DBOFullyTyped<S>, db: DB) => Awaitable<BasicSession>;
|
|
215
|
+
};
|
|
216
|
+
};
|
|
217
|
+
export {};
|
|
218
|
+
//# sourceMappingURL=AuthTypes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthTypes.d.ts","sourceRoot":"","sources":["../../lib/Auth/AuthTypes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthTypes.js","sourceRoot":"","sources":["../../lib/Auth/AuthTypes.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authInit.d.ts","sourceRoot":"","sources":["../../lib/Auth/authInit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAiC,MAAM,eAAe,CAAC;AAI3E,wBAAsB,QAAQ,CAAC,IAAI,EAAE,WAAW,iBAgK/C"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.authInit = void 0;
|
|
4
|
+
const AuthHandler_1 = require("./AuthHandler");
|
|
5
|
+
const setAuthSignup_1 = require("./setAuthSignup");
|
|
6
|
+
async function authInit() {
|
|
7
|
+
if (!this.opts)
|
|
8
|
+
return;
|
|
9
|
+
this.opts.sidKeyName = this.opts.sidKeyName || "session_id";
|
|
10
|
+
const { sidKeyName, login, getUser, expressConfig } = this.opts;
|
|
11
|
+
this.sidKeyName = this.opts.sidKeyName;
|
|
12
|
+
if (typeof sidKeyName !== "string" && !login) {
|
|
13
|
+
throw "Invalid auth: Provide { sidKeyName: string } ";
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Why ??? Collision with socket.io ???
|
|
17
|
+
*/
|
|
18
|
+
if (this.sidKeyName === "sid")
|
|
19
|
+
throw "sidKeyName cannot be 'sid' please provide another name.";
|
|
20
|
+
if (!getUser)
|
|
21
|
+
throw "getUser missing from auth config";
|
|
22
|
+
if (expressConfig) {
|
|
23
|
+
const { app, publicRoutes = [], onGetRequestOK, magicLinks, use } = expressConfig;
|
|
24
|
+
if (publicRoutes.find(r => typeof r !== "string" || !r)) {
|
|
25
|
+
throw "Invalid or empty string provided within publicRoutes ";
|
|
26
|
+
}
|
|
27
|
+
(0, setAuthSignup_1.setAuthSignup)(expressConfig);
|
|
28
|
+
if (use) {
|
|
29
|
+
app.use((req, res, next) => {
|
|
30
|
+
use({
|
|
31
|
+
req,
|
|
32
|
+
res,
|
|
33
|
+
next,
|
|
34
|
+
getUser: () => this.getUser({ httpReq: req }),
|
|
35
|
+
dbo: this.dbo,
|
|
36
|
+
db: this.db,
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
if (magicLinks && this.routes.magicLinks) {
|
|
41
|
+
const { check } = magicLinks;
|
|
42
|
+
if (!check)
|
|
43
|
+
throw "Check must be defined for magicLinks";
|
|
44
|
+
app.get(this.routes.magicLinks?.expressRoute, async (req, res) => {
|
|
45
|
+
const { id } = req.params ?? {};
|
|
46
|
+
if (typeof id !== "string" || !id) {
|
|
47
|
+
res.status(AuthHandler_1.HTTPCODES.BAD_REQUEST).json({ msg: "Invalid magic-link id. Expecting a string" });
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
try {
|
|
51
|
+
const session = await this.throttledFunc(async () => {
|
|
52
|
+
return check(id, this.dbo, this.db, (0, AuthHandler_1.getLoginClientInfo)({ httpReq: req }));
|
|
53
|
+
});
|
|
54
|
+
if (!session) {
|
|
55
|
+
res.status(AuthHandler_1.HTTPCODES.AUTH_ERROR).json({ msg: "Invalid magic-link" });
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
this.setCookieAndGoToReturnURLIFSet(session, { req, res });
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
catch (e) {
|
|
62
|
+
res.status(AuthHandler_1.HTTPCODES.AUTH_ERROR).json({ msg: e });
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
const loginRoute = this.routes?.login;
|
|
68
|
+
if (loginRoute) {
|
|
69
|
+
app.post(loginRoute, async (req, res) => {
|
|
70
|
+
try {
|
|
71
|
+
const start = Date.now();
|
|
72
|
+
const { sid, expires } = await this.loginThrottled(req.body || {}, (0, AuthHandler_1.getLoginClientInfo)({ httpReq: req })) || {};
|
|
73
|
+
await this.prostgles.opts.onLog?.({
|
|
74
|
+
type: "auth",
|
|
75
|
+
command: "login",
|
|
76
|
+
duration: Date.now() - start,
|
|
77
|
+
sid,
|
|
78
|
+
socketId: undefined,
|
|
79
|
+
});
|
|
80
|
+
if (sid) {
|
|
81
|
+
this.setCookieAndGoToReturnURLIFSet({ sid, expires }, { req, res });
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
throw ("Internal error: no user or session");
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
catch (err) {
|
|
88
|
+
console.log(err);
|
|
89
|
+
res.status(AuthHandler_1.HTTPCODES.AUTH_ERROR).json({ err });
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
if (this.routes.logoutGetPath && this.opts.logout) {
|
|
93
|
+
app.get(this.routes.logoutGetPath, async (req, res) => {
|
|
94
|
+
const sid = this.validateSid(req?.cookies?.[sidKeyName]);
|
|
95
|
+
if (sid) {
|
|
96
|
+
try {
|
|
97
|
+
await this.throttledFunc(() => {
|
|
98
|
+
return this.opts.logout(req?.cookies?.[sidKeyName], this.dbo, this.db);
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
catch (err) {
|
|
102
|
+
console.error(err);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
res.redirect("/");
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
if (Array.isArray(publicRoutes)) {
|
|
109
|
+
/* Redirect if not logged in and requesting non public content */
|
|
110
|
+
app.get(this.routes.catchAll, async (req, res, next) => {
|
|
111
|
+
const clientReq = { httpReq: req };
|
|
112
|
+
const getUser = this.getUser;
|
|
113
|
+
if (this.prostgles.restApi) {
|
|
114
|
+
if (Object.values(this.prostgles.restApi.routes).some(restRoute => this.matchesRoute(restRoute.split("/:")[0], req.path))) {
|
|
115
|
+
next();
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
try {
|
|
120
|
+
const returnURL = this.getReturnUrl(req);
|
|
121
|
+
/**
|
|
122
|
+
* Requesting a User route
|
|
123
|
+
*/
|
|
124
|
+
if (this.isUserRoute(req.path)) {
|
|
125
|
+
/* Check auth. Redirect to login if unauthorized */
|
|
126
|
+
const u = await getUser(clientReq);
|
|
127
|
+
if (!u) {
|
|
128
|
+
res.redirect(`${loginRoute}?returnURL=${encodeURIComponent(req.originalUrl)}`);
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
/* If authorized and going to returnUrl then redirect. Otherwise serve file */
|
|
132
|
+
}
|
|
133
|
+
else if (returnURL && (await getUser(clientReq))) {
|
|
134
|
+
res.redirect(returnURL);
|
|
135
|
+
return;
|
|
136
|
+
/** If Logged in and requesting login then redirect to main page */
|
|
137
|
+
}
|
|
138
|
+
else if (this.matchesRoute(loginRoute, req.path) && (await getUser(clientReq))) {
|
|
139
|
+
res.redirect("/");
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
onGetRequestOK?.(req, res, { getUser: () => getUser(clientReq), dbo: this.dbo, db: this.db });
|
|
143
|
+
}
|
|
144
|
+
catch (error) {
|
|
145
|
+
console.error(error);
|
|
146
|
+
const errorMessage = typeof error === "string" ? error : error instanceof Error ? error.message : "";
|
|
147
|
+
res.status(AuthHandler_1.HTTPCODES.AUTH_ERROR).json({ msg: "Something went wrong when processing your request" + (errorMessage ? (": " + errorMessage) : "") });
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
exports.authInit = authInit;
|
|
155
|
+
//# sourceMappingURL=authInit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authInit.js","sourceRoot":"","sources":["../../lib/Auth/authInit.ts"],"names":[],"mappings":";;;AACA,+CAA2E;AAE3E,mDAAgD;AAEzC,KAAK,UAAU,QAAQ;IAC5B,IAAI,CAAC,IAAI,CAAC,IAAI;QAAE,OAAO;IAEvB,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,YAAY,CAAC;IAC5D,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;IAChE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;IAEvC,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;QAC7C,MAAM,+CAA+C,CAAC;IACxD,CAAC;IACD;;OAEG;IACH,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK;QAAE,MAAM,yDAAyD,CAAC;IAE/F,IAAI,CAAC,OAAO;QAAE,MAAM,kCAAkC,CAAC;IAEvD,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,EAAE,EAAE,cAAc,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC;QAClF,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,MAAM,uDAAuD,CAAA;QAC/D,CAAC;QAED,IAAA,6BAAa,EAAC,aAAa,CAAC,CAAC;QAE7B,IAAG,GAAG,EAAC,CAAC;YACN,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;gBACzB,GAAG,CAAC;oBACF,GAAG;oBACH,GAAG;oBACH,IAAI;oBACJ,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAQ;oBACpD,GAAG,EAAE,IAAI,CAAC,GAAoB;oBAC9B,EAAE,EAAE,IAAI,CAAC,EAAE;iBACZ,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,IAAI,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACzC,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC;YAC7B,IAAI,CAAC,KAAK;gBAAE,MAAM,sCAAsC,CAAC;YAEzD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,GAAe,EAAE,GAAe,EAAE,EAAE;gBACvF,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;gBAEhC,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,CAAC,EAAE,EAAE,CAAC;oBAClC,GAAG,CAAC,MAAM,CAAC,uBAAS,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,2CAA2C,EAAE,CAAC,CAAC;gBAC/F,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC;wBACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE;4BAClD,OAAO,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,GAAU,EAAE,IAAI,CAAC,EAAE,EAAE,IAAA,gCAAkB,EAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;wBACnF,CAAC,CAAC,CAAC;wBACH,IAAI,CAAC,OAAO,EAAE,CAAC;4BACb,GAAG,CAAC,MAAM,CAAC,uBAAS,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,oBAAoB,EAAE,CAAC,CAAC;wBACvE,CAAC;6BAAM,CAAC;4BACN,IAAI,CAAC,8BAA8B,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;wBAC7D,CAAC;oBAEH,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,GAAG,CAAC,MAAM,CAAC,uBAAS,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;oBACpD,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC;QACtC,IAAI,UAAU,EAAE,CAAC;YACf,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,GAAe,EAAE,GAAe,EAAE,EAAE;gBAC9D,IAAI,CAAC;oBACH,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBACzB,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,IAAA,gCAAkB,EAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;oBAC/G,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;wBAChC,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,OAAO;wBAChB,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;wBAC5B,GAAG;wBACH,QAAQ,EAAE,SAAS;qBACpB,CAAC,CAAA;oBACF,IAAI,GAAG,EAAE,CAAC;wBAER,IAAI,CAAC,8BAA8B,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;oBAEtE,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,oCAAoC,CAAC,CAAA;oBAC9C,CAAC;gBACH,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;oBAChB,GAAG,CAAC,MAAM,CAAC,uBAAS,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;gBACjD,CAAC;YAEH,CAAC,CAAC,CAAC;YAEH,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBAClD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,EAAE,GAAe,EAAE,GAAe,EAAE,EAAE;oBAC5E,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;oBACzD,IAAI,GAAG,EAAE,CAAC;wBACR,IAAI,CAAC;4BACH,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE;gCAC5B,OAAO,IAAI,CAAC,IAAK,CAAC,MAAO,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,GAAU,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;4BAClF,CAAC,CAAC,CAAA;wBACJ,CAAC;wBAAC,OAAO,GAAG,EAAE,CAAC;4BACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBACrB,CAAC;oBACH,CAAC;oBACD,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;gBACnB,CAAC,CAAC,CAAC;YACL,CAAC;YAED,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;gBAEhC,iEAAiE;gBACjE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAe,EAAE,GAAe,EAAE,IAAI,EAAE,EAAE;oBAC7E,MAAM,SAAS,GAAsB,EAAE,OAAO,EAAE,GAAG,EAAE,CAAA;oBACrD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;oBAC7B,IAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAC,CAAC;wBACzB,IAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,EAAC,CAAC;4BACxH,IAAI,EAAE,CAAC;4BACP,OAAO;wBACT,CAAC;oBACH,CAAC;oBACD,IAAI,CAAC;wBACH,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;wBAEzC;;2BAEG;wBACH,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;4BAE/B,mDAAmD;4BACnD,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC;4BACnC,IAAI,CAAC,CAAC,EAAE,CAAC;gCACP,GAAG,CAAC,QAAQ,CAAC,GAAG,UAAU,cAAc,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gCAC/E,OAAO;4BACT,CAAC;4BAED,8EAA8E;wBAChF,CAAC;6BAAM,IAAI,SAAS,IAAI,CAAC,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;4BAEnD,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;4BACxB,OAAO;4BAEP,mEAAmE;wBACrE,CAAC;6BAAM,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;4BAEjF,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;4BAClB,OAAO;wBACT,CAAC;wBAED,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAoB,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;oBAEhH,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;wBACrB,MAAM,YAAY,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;wBACrG,GAAG,CAAC,MAAM,CAAC,uBAAS,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,mDAAmD,GAAG,CAAC,YAAY,CAAA,CAAC,CAAC,CAAC,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;oBACnJ,CAAC;gBAEH,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAhKD,4BAgKC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getSafeReturnURL.d.ts","sourceRoot":"","sources":["../../lib/Auth/getSafeReturnURL.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,cAAe,MAAM,sBAAsB,MAAM,wCAkB7E,CAAA"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getSafeReturnURL = void 0;
|
|
4
|
+
const getSafeReturnURL = (returnURL, returnUrlParamName, quiet = false) => {
|
|
5
|
+
/** Dissalow redirect to other domains */
|
|
6
|
+
if (returnURL) {
|
|
7
|
+
const allowedOrigin = "https://localhost";
|
|
8
|
+
const { origin, pathname, search, searchParams } = new URL(returnURL, allowedOrigin);
|
|
9
|
+
if (origin !== allowedOrigin ||
|
|
10
|
+
returnURL !== `${pathname}${search}` ||
|
|
11
|
+
searchParams.get(returnUrlParamName)) {
|
|
12
|
+
if (!quiet) {
|
|
13
|
+
console.error(`Unsafe returnUrl: ${returnURL}. Redirecting to /`);
|
|
14
|
+
}
|
|
15
|
+
return "/";
|
|
16
|
+
}
|
|
17
|
+
return returnURL;
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
exports.getSafeReturnURL = getSafeReturnURL;
|
|
21
|
+
const issue = [
|
|
22
|
+
["https://localhost", "/"],
|
|
23
|
+
["//localhost.bad.com", "/"],
|
|
24
|
+
["//localhost.com", "/"],
|
|
25
|
+
["/localhost/com", "/localhost/com"],
|
|
26
|
+
["/localhost/com?here=there", "/localhost/com?here=there"],
|
|
27
|
+
["/localhost/com?returnUrl=there", "/"],
|
|
28
|
+
["//http://localhost.com", "/"],
|
|
29
|
+
["//abc.com", "/"],
|
|
30
|
+
["///abc.com", "/"],
|
|
31
|
+
].find(([returnURL, expected]) => (0, exports.getSafeReturnURL)(returnURL, "returnUrl", true) !== expected);
|
|
32
|
+
if (issue) {
|
|
33
|
+
throw new Error(`getSafeReturnURL failed for ${issue[0]}. Expected: ${issue[1]}`);
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=getSafeReturnURL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getSafeReturnURL.js","sourceRoot":"","sources":["../../lib/Auth/getSafeReturnURL.ts"],"names":[],"mappings":";;;AAAO,MAAM,gBAAgB,GAAG,CAAC,SAAiB,EAAE,kBAA0B,EAAE,KAAK,GAAG,KAAK,EAAE,EAAE;IAC/F,yCAAyC;IACzC,IAAG,SAAS,EAAE,CAAC;QACb,MAAM,aAAa,GAAG,mBAAmB,CAAC;QAC1C,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,GAAG,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACrF,IACE,MAAM,KAAK,aAAa;YACxB,SAAS,KAAK,GAAG,QAAQ,GAAG,MAAM,EAAE;YACpC,YAAY,CAAC,GAAG,CAAC,kBAAkB,CAAC,EACrC,CAAC;YACA,IAAG,CAAC,KAAK,EAAC,CAAC;gBACT,OAAO,CAAC,KAAK,CAAC,qBAAqB,SAAS,oBAAoB,CAAC,CAAC;YACpE,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC,CAAA;AAlBY,QAAA,gBAAgB,oBAkB5B;AAED,MAAM,KAAK,GAAI;IACb,CAAC,mBAAmB,EAAE,GAAG,CAAC;IAC1B,CAAC,qBAAqB,EAAE,GAAG,CAAC;IAC5B,CAAC,iBAAiB,EAAE,GAAG,CAAC;IACxB,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IACpC,CAAC,2BAA2B,EAAE,2BAA2B,CAAC;IAC1D,CAAC,gCAAgC,EAAE,GAAG,CAAC;IACvC,CAAC,wBAAwB,EAAE,GAAG,CAAC;IAC/B,CAAC,WAAW,EAAE,GAAG,CAAC;IAClB,CAAC,YAAY,EAAE,GAAG,CAAC;CACV,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,IAAA,wBAAgB,EAAC,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,KAAK,QAAQ,CAAC,CAAC;AAEzG,IAAG,KAAK,EAAC,CAAC;IACR,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,CAAC,CAAC,CAAC,eAAe,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACpF,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Auth } from './AuthTypes';
|
|
2
|
+
import { AuthSocketSchema } from "prostgles-types";
|
|
3
|
+
export declare const setAuthSignup: ({ registrations, app }: Required<Auth>["expressConfig"]) => void;
|
|
4
|
+
export declare const getProviders: (registrations: Required<Auth>["expressConfig"]["registrations"]) => AuthSocketSchema["providers"] | undefined;
|
|
5
|
+
//# sourceMappingURL=setAuthSignup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setAuthSignup.d.ts","sourceRoot":"","sources":["../../lib/Auth/setAuthSignup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAMnC,OAAO,EAAE,gBAAgB,EAA+B,MAAM,iBAAiB,CAAC;AAEhF,eAAO,MAAM,aAAa,2BAA4B,SAAS,IAAI,CAAC,CAAC,eAAe,CAAC,SA0EpF,CAAA;AAED,eAAO,MAAM,YAAY,kBAAmB,SAAS,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,eAAe,CAAC,KAAG,gBAAgB,CAAC,WAAW,CAAC,GAAG,SAe9H,CAAA"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getProviders = exports.setAuthSignup = void 0;
|
|
4
|
+
const passport_1 = require("passport");
|
|
5
|
+
const passport_google_oauth20_1 = require("passport-google-oauth20");
|
|
6
|
+
const passport_github2_1 = require("passport-github2");
|
|
7
|
+
const passport_microsoft_1 = require("passport-microsoft");
|
|
8
|
+
const passport_facebook_1 = require("passport-facebook");
|
|
9
|
+
const prostgles_types_1 = require("prostgles-types");
|
|
10
|
+
const setAuthSignup = ({ registrations, app }) => {
|
|
11
|
+
if (!registrations)
|
|
12
|
+
return;
|
|
13
|
+
const { email, onRegister, websiteUrl, ...providers } = registrations;
|
|
14
|
+
if (email) {
|
|
15
|
+
app.post("/signup", async (req, res) => {
|
|
16
|
+
const { username, password } = req.body;
|
|
17
|
+
if (typeof username !== "string" || typeof password !== "string") {
|
|
18
|
+
res.status(400).json({ msg: "Invalid username or password" });
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
await onRegister({ provider: "email", profile: { username, password } });
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
if (!(0, prostgles_types_1.isEmpty)(providers)) {
|
|
25
|
+
app.use(passport_1.default.initialize());
|
|
26
|
+
}
|
|
27
|
+
([
|
|
28
|
+
providers.google && {
|
|
29
|
+
providerName: "google",
|
|
30
|
+
config: providers.google,
|
|
31
|
+
strategy: passport_google_oauth20_1.Strategy,
|
|
32
|
+
},
|
|
33
|
+
providers.github && {
|
|
34
|
+
providerName: "github",
|
|
35
|
+
config: providers.github,
|
|
36
|
+
strategy: passport_github2_1.Strategy,
|
|
37
|
+
},
|
|
38
|
+
providers.facebook && {
|
|
39
|
+
providerName: "facebook",
|
|
40
|
+
config: providers.facebook,
|
|
41
|
+
strategy: passport_facebook_1.Strategy,
|
|
42
|
+
},
|
|
43
|
+
providers.microsoft && {
|
|
44
|
+
providerName: "microsoft",
|
|
45
|
+
config: providers.microsoft,
|
|
46
|
+
strategy: passport_microsoft_1.Strategy,
|
|
47
|
+
}
|
|
48
|
+
])
|
|
49
|
+
.filter(prostgles_types_1.isDefined)
|
|
50
|
+
.forEach(({ config: { authOpts, ...config }, strategy, providerName, }) => {
|
|
51
|
+
const callbackPath = `/auth/${providerName}/callback`;
|
|
52
|
+
passport_1.default.use(new strategy({
|
|
53
|
+
...config,
|
|
54
|
+
callbackURL: `${websiteUrl}${callbackPath}`,
|
|
55
|
+
}, async (accessToken, refreshToken, profile, done) => {
|
|
56
|
+
// This callback is where you would normally store or retrieve user info from the database
|
|
57
|
+
await onRegister({ provider: providerName, accessToken, refreshToken, profile });
|
|
58
|
+
return done(null, profile);
|
|
59
|
+
}));
|
|
60
|
+
app.get(`/auth/${providerName}`, passport_1.default.authenticate(providerName, authOpts));
|
|
61
|
+
app.get(callbackPath, passport_1.default.authenticate(providerName, { failureRedirect: '/' }), (req, res) => {
|
|
62
|
+
// Successful authentication, redirect to main page
|
|
63
|
+
res.redirect('/');
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
};
|
|
67
|
+
exports.setAuthSignup = setAuthSignup;
|
|
68
|
+
const getProviders = (registrations) => {
|
|
69
|
+
if (!registrations)
|
|
70
|
+
return undefined;
|
|
71
|
+
const { email, websiteUrl, onRegister, ...providers } = registrations;
|
|
72
|
+
if ((0, prostgles_types_1.isEmpty)(providers))
|
|
73
|
+
return undefined;
|
|
74
|
+
const result = {};
|
|
75
|
+
(0, prostgles_types_1.getKeys)(providers).forEach(providerName => {
|
|
76
|
+
if (providers[providerName]?.clientID) {
|
|
77
|
+
result[providerName] = {
|
|
78
|
+
url: `/auth/${providerName}`,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
return result;
|
|
83
|
+
};
|
|
84
|
+
exports.getProviders = getProviders;
|
|
85
|
+
//# sourceMappingURL=setAuthSignup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setAuthSignup.js","sourceRoot":"","sources":["../../lib/Auth/setAuthSignup.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as pgPromise from 'pg-promise';
|
|
2
|
-
import { AnyObject, ColumnInfo, DbJoinMaker, EXISTS_KEY, RawJoinPath, SQLHandler, TableInfo as TInfo } from "prostgles-types";
|
|
3
|
-
import { BasicSession, ExpressReq
|
|
2
|
+
import { AnyObject, ColumnInfo, DbJoinMaker, EXISTS_KEY, RawJoinPath, SQLHandler, TableInfo as TInfo, UserLike } from "prostgles-types";
|
|
3
|
+
import { BasicSession, ExpressReq } from "../Auth/AuthTypes";
|
|
4
4
|
import { BasicCallback } from "../PubSubManager/PubSubManager";
|
|
5
5
|
import { PublishAllOrNothing } from "../PublishParser/PublishParser";
|
|
6
6
|
import { FieldSpec } from "./QueryBuilder/Functions";
|
|
@@ -130,7 +130,7 @@ export type PRGLIOSocket = {
|
|
|
130
130
|
__prglCache?: {
|
|
131
131
|
session: BasicSession;
|
|
132
132
|
user: UserLike;
|
|
133
|
-
clientUser:
|
|
133
|
+
clientUser: UserLike;
|
|
134
134
|
};
|
|
135
135
|
_user?: AnyObject;
|
|
136
136
|
/** Used for publish error caching */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DboBuilderTypes.d.ts","sourceRoot":"","sources":["../../lib/DboBuilder/DboBuilderTypes.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,SAAS,MAAM,YAAY,CAAC;AACxC,OAAO,EACL,SAAS,EACT,UAAU,EACV,WAAW,EACX,UAAU,EACV,WAAW,EACX,UAAU,EACV,SAAS,IAAI,KAAK,
|
|
1
|
+
{"version":3,"file":"DboBuilderTypes.d.ts","sourceRoot":"","sources":["../../lib/DboBuilder/DboBuilderTypes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DboBuilderTypes.js","sourceRoot":"","sources":["../../lib/DboBuilder/DboBuilderTypes.ts"],"names":[],"mappings":";AACA;;;gGAGgG;;;AAEhG,wCAAwC;
|
|
1
|
+
{"version":3,"file":"DboBuilderTypes.js","sourceRoot":"","sources":["../../lib/DboBuilder/DboBuilderTypes.ts"],"names":[],"mappings":";AACA;;;gGAGgG;;;AAEhG,wCAAwC;AA+H3B,QAAA,GAAG,GAAQ,SAAS,CAAC;AAChC,2EAA2E;CAC5E,CAAC,CAAC"}
|
|
@@ -7,7 +7,7 @@ export declare function getNewQuery(_this: ViewHandler, filter: Filter, selectPa
|
|
|
7
7
|
limit?: number | null | undefined;
|
|
8
8
|
offset?: number | undefined;
|
|
9
9
|
groupBy?: boolean | undefined;
|
|
10
|
-
returnType?: "
|
|
10
|
+
returnType?: "values" | "row" | "value" | "statement" | "statement-no-rls" | "statement-where" | undefined;
|
|
11
11
|
} & {
|
|
12
12
|
select?: (("" | "*" | {
|
|
13
13
|
"*": 1;
|