prostgles-server 4.2.147 → 4.2.149

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.
@@ -1,5 +1,5 @@
1
1
  import { Express, NextFunction, Request, Response } from "express";
2
- import { AnyObject, FieldFilter, UserLike } from "prostgles-types";
2
+ import { AnyObject, FieldFilter, IdentityProvider, UserLike } from "prostgles-types";
3
3
  import { DB } from "../Prostgles";
4
4
  import { DBOFullyTyped } from "../DBSchemaBuilder";
5
5
  import { PRGLIOSocket } from "../DboBuilder/DboBuilderTypes";
@@ -103,6 +103,27 @@ export type AuthRegistrationConfig = RegistrationProviders & {
103
103
  * Do something with the registered user
104
104
  */
105
105
  onRegister: (data: RegistrationData) => void | Promise<any>;
106
+ /**
107
+ * Used to stop abuse
108
+ */
109
+ onProviderLoginStart: (data: {
110
+ provider: IdentityProvider;
111
+ req: ExpressReq;
112
+ res: ExpressRes;
113
+ }, client: LoginClientInfo) => Promise<{
114
+ error: string;
115
+ } | {
116
+ ok: true;
117
+ }>;
118
+ /**
119
+ * Used to identify abuse
120
+ */
121
+ onProviderLoginFail: (data: {
122
+ provider: IdentityProvider;
123
+ error: any;
124
+ req: ExpressReq;
125
+ res: ExpressRes;
126
+ }) => void | Promise<void>;
106
127
  };
107
128
  export type SessionUser<ServerUser extends UserLike = UserLike, ClientUser extends UserLike = UserLike> = {
108
129
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"AuthTypes.d.ts","sourceRoot":"","sources":["../../lib/Auth/AuthTypes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AuthTypes.d.ts","sourceRoot":"","sources":["../../lib/Auth/AuthTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACrF,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,IAAI,cAAc,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC3G,OAAO,KAAK,EAAE,eAAe,IAAI,cAAc,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACpG,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,IAAI,gBAAgB,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzG,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAEnC,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;AAEnF,KAAK,mBAAmB,GAAG;IACzB,QAAQ,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,UAAU,GAAG,cAAc,CAAC,GAAG;QAC/D,QAAQ,CAAC,EAAE,mBAAmB,CAAC;KAChC,CAAC;IACF,MAAM,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,UAAU,GAAG,cAAc,CAAC,GAAG;QAC3D,QAAQ,CAAC,EAAE,mBAAmB,CAAC;KAChC,CAAC;IACF,MAAM,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,UAAU,GAAG,cAAc,CAAC,GAAG;QAC3D,QAAQ,CAAC,EAAE,mBAAmB,CAAC;KAChC,CAAC;IACF,SAAS,CAAC,EAAE,IAAI,CAAC,wBAAwB,EAAE,UAAU,GAAG,cAAc,CAAC,GAAG;QACxE,QAAQ,CAAC,EAAE,mBAAmB,CAAC;KAChC,CAAC;CACH,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,IAAI,EAAE,SAAS,GAAG,MAAM,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,CAAA;CACF,CAAA;AAED,KAAK,qBAAqB,GAAG,mBAAmB,GAAG;IACjD,KAAK,CAAC,EAAE;QACN,UAAU,EAAE,eAAe,GAAG,cAAc,CAAC;QAC7C,IAAI,EAAE,UAAU,CAAA;KACjB,GAAG;QACF,UAAU,EAAE,cAAc,CAAC;QAC3B;;WAEG;QACH,IAAI,CAAC,EAAE,UAAU,CAAC;KACnB,CAAC;CACH,CAAA;AAED,MAAM,MAAM,oBAAoB,GAC9B;IACA,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,aAAa,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB,GACC;IACA,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,aAAa,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB,GACC;IACA,QAAQ,EAAE,UAAU,CAAC;IACrB,OAAO,EAAE,eAAe,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB,GACC;IACA,QAAQ,EAAE,WAAW,CAAC;IACtB,OAAO,EAAE,GAAG,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAC1B;IACA,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE;QACP,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAA;CACF,GACC,oBAAoB,CAAC;AAEvB,MAAM,MAAM,sBAAsB,GAAG,qBAAqB,GAAG;IAC3D;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,UAAU,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAE5D;;OAEG;IACH,oBAAoB,EAAE,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,gBAAgB,CAAC;QAAC,GAAG,EAAE,UAAU,CAAC;QAAC,GAAG,EAAE,UAAU,CAAA;KAAC,EAAE,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;KAAE,GAAG;QAAE,EAAE,EAAE,IAAI,CAAC;KAAE,CAAC,CAAC;IAEtK;;OAEG;IACH,mBAAmB,EAAE,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,gBAAgB,CAAC;QAAC,KAAK,EAAE,GAAG,CAAC;QAAC,GAAG,EAAE,UAAU,CAAC;QAAC,GAAG,EAAE,UAAU,CAAA;KAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClI,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,UAAU,SAAS,QAAQ,GAAG,QAAQ,EAAE,UAAU,SAAS,QAAQ,GAAG,QAAQ,IAAI;IACxG;;;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,MAAM,MAAM,iBAAiB,CAAC,CAAC,EAAE,KAAK,SAAS,WAAW,IAAI;IAAE,EAAE,EAAE,EAAE,CAAC;IAAC,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAAC,OAAO,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;CAAE,CAAA;AAE1I,MAAM,MAAM,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,KAAK,SAAS,WAAW,GAAG,WAAW,IAAI;IACpE;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;;OAKG;IACH,aAAa,CAAC,EAAE;QAEd;;WAEG;QACH,GAAG,EAAE,OAAO,CAAC;QAEb;;WAEG;QACH,aAAa,CAAC,EAAE,SAAS,CAAC;QAE1B;;WAEG;QACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;QAEjC;;;WAGG;QACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QAExB;;;WAGG;QACH,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE;YAAE,GAAG,EAAE,UAAU,CAAC;YAAC,GAAG,EAAE,UAAU,CAAC;YAAC,IAAI,EAAE,YAAY,CAAA;SAAE,GAAG,iBAAiB,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAE7H;;;WAGG;QACH,cAAc,CAAC,EAAE,CACf,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,UAAU,EACf,MAAM,EAAE,iBAAiB,CAAC,CAAC,EAAE,KAAK,CAAC,KAChC,GAAG,CAAC;QAET;;WAEG;QACH,UAAU,CAAC,EAAE;YAEX;;eAEG;YACH,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,eAAe,KAAK,SAAS,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC;SACzH,CAAA;QAED,aAAa,CAAC,EAAE,sBAAsB,CAAC;KACxC,CAAA;IAED;;OAEG;IACH,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,iBAAiB,GAAG,eAAe,KAAK,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAE/I,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,eAAe,KAAK,SAAS,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC;IAChI,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,SAAS,CAAC,GAAG,CAAC,CAAC;IAEpF;;OAEG;IACH,YAAY,CAAC,EAAE;QACb,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,SAAS,CAAC,YAAY,CAAC,CAAA;KAChG,CAAA;CACF,CAAA;AAGD,MAAM,MAAM,WAAW,GACrB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,GAC5E,CAAC;IAAE,IAAI,EAAE,UAAU,CAAC;CAAE,GAAG,oBAAoB,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"setAuthProviders.d.ts","sourceRoot":"","sources":["../../lib/Auth/setAuthProviders.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAOnC,OAAO,EAAE,gBAAgB,EAA+B,MAAM,iBAAiB,CAAC;AAChF,OAAO,EAA0B,WAAW,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAKzC,eAAO,MAAM,4BAA4B,QAAS,SAAS,WAAW,cAAc,QAAQ,MAAM,SAKjG,CAAA;AAED,wBAAgB,gBAAgB,CAAE,IAAI,EAAE,WAAW,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,QAmF3G;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,gBAAgB,CAAC,WAAW,CAAC,GAAG,SAAS,CAoBzF"}
1
+ {"version":3,"file":"setAuthProviders.d.ts","sourceRoot":"","sources":["../../lib/Auth/setAuthProviders.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAOnC,OAAO,EAAE,gBAAgB,EAA+B,MAAM,iBAAiB,CAAC;AAChF,OAAO,EAA0B,WAAW,EAAsB,MAAM,eAAe,CAAC;AACxF,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAKzC,eAAO,MAAM,4BAA4B,QAAS,SAAS,WAAW,cAAc,QAAQ,MAAM,SAKjG,CAAA;AAED,wBAAgB,gBAAgB,CAAE,IAAI,EAAE,WAAW,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,QA2G3G;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,gBAAgB,CAAC,WAAW,CAAC,GAAG,SAAS,CAoBzF"}
@@ -21,7 +21,7 @@ exports.upsertNamedExpressMiddleware = upsertNamedExpressMiddleware;
21
21
  function setAuthProviders({ registrations, app }) {
22
22
  if (!registrations)
23
23
  return;
24
- const { email, onRegister, websiteUrl, ...providers } = registrations;
24
+ const { email, onRegister, onProviderLoginFail, onProviderLoginStart, websiteUrl, ...providers } = registrations;
25
25
  if (email) {
26
26
  app.post(AuthHandler_1.AUTH_ROUTES_AND_PARAMS.emailSignup, async (req, res) => {
27
27
  const { username, password } = req.body;
@@ -69,18 +69,38 @@ function setAuthProviders({ registrations, app }) {
69
69
  return done(null, profile, { accessToken, refreshToken, profile });
70
70
  }));
71
71
  app.get(`${AuthHandler_1.AUTH_ROUTES_AND_PARAMS.loginWithProvider}/${providerName}`, passport.authenticate(providerName, authOpts ?? {}));
72
- app.get(callbackPath, passport.authenticate(providerName, {
73
- session: false,
74
- failureRedirect: "/login",
75
- failWithError: true,
76
- }, console.log), async (req, res) => {
77
- this.loginThrottledAndSetCookie(req, res, { type: "provider", provider: providerName, ...req.authInfo })
78
- .then(() => {
79
- res.redirect("/");
80
- })
81
- .catch((e) => {
82
- res.status(500).json((0, dboBuilderUtils_1.getErrorAsObject)(e));
83
- });
72
+ app.get(callbackPath, async (req, res) => {
73
+ try {
74
+ const startCheck = await onProviderLoginStart({ provider: providerName, req, res }, (0, AuthHandler_1.getLoginClientInfo)({ httpReq: req }));
75
+ if ("error" in startCheck) {
76
+ res.status(500).json({ error: startCheck.error });
77
+ return;
78
+ }
79
+ passport.authenticate(providerName, {
80
+ session: false,
81
+ failureRedirect: "/login",
82
+ failWithError: true,
83
+ }, async (error, _profile, authInfo) => {
84
+ if (error) {
85
+ await onProviderLoginFail({ provider: providerName, error, req, res });
86
+ res.status(500).json({
87
+ error: "Failed to login with provider",
88
+ });
89
+ }
90
+ else {
91
+ this.loginThrottledAndSetCookie(req, res, { type: "provider", provider: providerName, ...authInfo })
92
+ .then(() => {
93
+ res.redirect("/");
94
+ })
95
+ .catch((e) => {
96
+ res.status(500).json((0, dboBuilderUtils_1.getErrorAsObject)(e));
97
+ });
98
+ }
99
+ })(req, res);
100
+ }
101
+ catch (e) {
102
+ res.status(500).json({ error: "Something went wrong" });
103
+ }
84
104
  });
85
105
  });
86
106
  }
@@ -91,7 +111,7 @@ function getProviders() {
91
111
  return undefined;
92
112
  const {
93
113
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
94
- email, websiteUrl, onRegister, ...providers } = registrations;
114
+ email, websiteUrl, onRegister, onProviderLoginFail, onProviderLoginStart, ...providers } = registrations;
95
115
  if ((0, prostgles_types_1.isEmpty)(providers))
96
116
  return undefined;
97
117
  const result = {};
@@ -1 +1 @@
1
- {"version":3,"file":"setAuthProviders.js","sourceRoot":"","sources":["../../lib/Auth/setAuthProviders.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setAuthProviders.js","sourceRoot":"","sources":["../../lib/Auth/setAuthProviders.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { Express, NextFunction, Request, Response } from "express";
2
- import { AnyObject, FieldFilter, UserLike } from "prostgles-types";
2
+ import { AnyObject, FieldFilter, IdentityProvider, UserLike } from "prostgles-types";
3
3
  import { DB } from "../Prostgles";
4
4
  import { DBOFullyTyped } from "../DBSchemaBuilder";
5
5
  import { PRGLIOSocket } from "../DboBuilder/DboBuilderTypes";
@@ -119,6 +119,16 @@ export type AuthRegistrationConfig = RegistrationProviders & {
119
119
  * Do something with the registered user
120
120
  */
121
121
  onRegister: (data: RegistrationData) => void | Promise<any>;
122
+
123
+ /**
124
+ * Used to stop abuse
125
+ */
126
+ onProviderLoginStart: (data: { provider: IdentityProvider; req: ExpressReq, res: ExpressRes}, client: LoginClientInfo) => Promise<{ error: string; } | { ok: true; }>;
127
+
128
+ /**
129
+ * Used to identify abuse
130
+ */
131
+ onProviderLoginFail: (data: { provider: IdentityProvider; error: any, req: ExpressReq, res: ExpressRes}) => void | Promise<void>;
122
132
  };
123
133
 
124
134
  export type SessionUser<ServerUser extends UserLike = UserLike, ClientUser extends UserLike = UserLike> = {
@@ -6,7 +6,7 @@ import { Strategy as GitHubStrategy } from "passport-github2";
6
6
  import { Strategy as MicrosoftStrategy } from "passport-microsoft";
7
7
  import { Strategy as FacebookStrategy } from "passport-facebook";
8
8
  import { AuthSocketSchema, getKeys, isDefined, isEmpty } from "prostgles-types";
9
- import { AUTH_ROUTES_AND_PARAMS, AuthHandler } from "./AuthHandler";
9
+ import { AUTH_ROUTES_AND_PARAMS, AuthHandler, getLoginClientInfo } from "./AuthHandler";
10
10
  import type e from "express";
11
11
  import { RequestHandler } from "express";
12
12
  import { removeExpressRouteByName } from "../FileManager/FileManager";
@@ -22,7 +22,7 @@ export const upsertNamedExpressMiddleware = (app: e.Express, handler: RequestHan
22
22
 
23
23
  export function setAuthProviders (this: AuthHandler, { registrations, app }: Required<Auth>["expressConfig"]) {
24
24
  if(!registrations) return;
25
- const { email, onRegister, websiteUrl, ...providers } = registrations;
25
+ const { email, onRegister, onProviderLoginFail, onProviderLoginStart, websiteUrl, ...providers } = registrations;
26
26
  if(email){
27
27
  app.post(AUTH_ROUTES_AND_PARAMS.emailSignup, async (req, res) => {
28
28
  const { username, password } = req.body;
@@ -86,22 +86,46 @@ export function setAuthProviders (this: AuthHandler, { registrations, app }: Req
86
86
  passport.authenticate(providerName, authOpts ?? {})
87
87
  );
88
88
 
89
- app.get(callbackPath,
90
- passport.authenticate(providerName, {
91
- session: false,
92
- failureRedirect: "/login",
93
- failWithError: true,
94
- }, console.log),
89
+ app.get(
90
+ callbackPath,
95
91
  async (req, res) => {
96
- this.loginThrottledAndSetCookie(req, res, { type: "provider", provider: providerName, ...req.authInfo as any })
97
- .then(() => {
98
- res.redirect("/");
99
- })
100
- .catch((e: any) => {
101
- res.status(500).json(getErrorAsObject(e));
102
- });
92
+ try {
93
+ const startCheck = await onProviderLoginStart({ provider: providerName, req, res }, getLoginClientInfo({ httpReq: req }));
94
+ if("error" in startCheck){
95
+ res.status(500).json({ error: startCheck.error });
96
+ return;
97
+ }
98
+ passport.authenticate(
99
+ providerName,
100
+ {
101
+ session: false,
102
+ failureRedirect: "/login",
103
+ failWithError: true,
104
+ },
105
+ async (error: any, _profile: any, authInfo: any) => {
106
+ if(error){
107
+ await onProviderLoginFail({ provider: providerName, error, req, res });
108
+ res.status(500).json({
109
+ error: "Failed to login with provider",
110
+ });
111
+ } else {
112
+ this.loginThrottledAndSetCookie(req, res, { type: "provider", provider: providerName, ...authInfo })
113
+ .then(() => {
114
+ res.redirect("/");
115
+ })
116
+ .catch((e: any) => {
117
+ res.status(500).json(getErrorAsObject(e));
118
+ });
119
+ }
120
+ }
121
+ )(req, res);
122
+
123
+ } catch (e) {
124
+ res.status(500).json({ error: "Something went wrong" });
125
+ }
103
126
  }
104
127
  );
128
+
105
129
  });
106
130
  }
107
131
 
@@ -110,7 +134,7 @@ export function getProviders(this: AuthHandler): AuthSocketSchema["providers"] |
110
134
  if(!registrations) return undefined;
111
135
  const {
112
136
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
113
- email, websiteUrl, onRegister,
137
+ email, websiteUrl, onRegister, onProviderLoginFail, onProviderLoginStart,
114
138
  ...providers
115
139
  } = registrations;
116
140
  if(isEmpty(providers)) return undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prostgles-server",
3
- "version": "4.2.147",
3
+ "version": "4.2.149",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -174,7 +174,9 @@ function dd(){
174
174
  }
175
175
  return undefined;
176
176
  },
177
- login: async ({ username, password } = {}) => {
177
+ login: async (loginData) => {
178
+ if(loginData.type !== "username") throw "Only username login is supported";
179
+ const { username, password } = loginData;
178
180
  const u = users.find(u => u.username === username && u.password === password);
179
181
  if(!u) throw "something went wrong: " + JSON.stringify({ username, password });
180
182
  let s = sessions.find(s => s.user_id === u.id)
@@ -203,6 +205,8 @@ function dd(){
203
205
  clientID: "GITHUB_CLIENT_ID",
204
206
  clientSecret: "GITHUB"
205
207
  },
208
+ onProviderLoginStart: async () => ({ ok: true }),
209
+ onProviderLoginFail: console.error,
206
210
  onRegister: console.log
207
211
  },
208
212
  }
@@ -21,7 +21,7 @@
21
21
  },
22
22
  "../..": {
23
23
  "name": "prostgles-server",
24
- "version": "4.2.146",
24
+ "version": "4.2.148",
25
25
  "license": "MIT",
26
26
  "dependencies": {
27
27
  "body-parser": "^1.20.3",