dauth-md-node 0.2.17 → 1.0.1
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/README.md +15 -15
- package/dist/api/utils/config.d.ts +1 -3
- package/dist/dauth-md-node.cjs.development.js +3 -4
- package/dist/dauth-md-node.cjs.development.js.map +1 -1
- package/dist/dauth-md-node.cjs.production.min.js +1 -1
- package/dist/dauth-md-node.cjs.production.min.js.map +1 -1
- package/dist/dauth-md-node.esm.js +4 -8
- package/dist/dauth-md-node.esm.js.map +1 -1
- package/dist/index.d.ts +8 -11
- package/package.json +1 -1
- package/src/api/dauth.api.ts +1 -1
- package/src/api/utils/config.ts +3 -4
- package/src/index.ts +8 -11
package/README.md
CHANGED
|
@@ -14,7 +14,7 @@ yarn add dauth-md-node
|
|
|
14
14
|
|
|
15
15
|
```typescript
|
|
16
16
|
import express from 'express';
|
|
17
|
-
import { dauth } from 'dauth-md-node';
|
|
17
|
+
import { dauth, IRequestDauth } from 'dauth-md-node';
|
|
18
18
|
|
|
19
19
|
const app = express();
|
|
20
20
|
|
|
@@ -47,7 +47,7 @@ Factory function that returns an Express middleware.
|
|
|
47
47
|
|
|
48
48
|
1. Extracts the `Authorization` header from the request
|
|
49
49
|
2. Verifies the JWT locally using the provided `tsk` (Tenant Secret Key)
|
|
50
|
-
3. Fetches the full user object from the DAuth backend (`GET /
|
|
50
|
+
3. Fetches the full user object from the DAuth backend (`GET /tenant/:domainName/user`)
|
|
51
51
|
4. Attaches the user to `req.user`
|
|
52
52
|
5. Calls `next()` on success
|
|
53
53
|
|
|
@@ -67,26 +67,26 @@ Factory function that returns an Express middleware.
|
|
|
67
67
|
When authentication succeeds, `req.user` contains:
|
|
68
68
|
|
|
69
69
|
```typescript
|
|
70
|
-
interface
|
|
70
|
+
interface IDauthUser {
|
|
71
71
|
_id: string;
|
|
72
|
-
dauthLicense?: string;
|
|
73
|
-
sid: string;
|
|
74
72
|
name: string;
|
|
75
73
|
lastname: string;
|
|
76
74
|
nickname: string;
|
|
77
75
|
email: string;
|
|
78
|
-
|
|
76
|
+
isVerified: boolean;
|
|
79
77
|
language: string;
|
|
80
78
|
avatar: { id: string; url: string };
|
|
81
79
|
role: string;
|
|
82
|
-
|
|
83
|
-
|
|
80
|
+
telPrefix: string;
|
|
81
|
+
telSuffix: string;
|
|
84
82
|
createdAt: Date;
|
|
85
83
|
updatedAt: Date;
|
|
86
|
-
|
|
84
|
+
lastLogin: Date;
|
|
87
85
|
}
|
|
88
86
|
```
|
|
89
87
|
|
|
88
|
+
Both `IDauthUser` and `IRequestDauth` are exported from the package for type-safe usage in consumer code.
|
|
89
|
+
|
|
90
90
|
## Real-World Integration Example
|
|
91
91
|
|
|
92
92
|
This is the pattern used in `easymediacloud-backend-node`, which delegates all user authentication to dauth.
|
|
@@ -95,7 +95,7 @@ This is the pattern used in `easymediacloud-backend-node`, which delegates all u
|
|
|
95
95
|
|
|
96
96
|
```typescript
|
|
97
97
|
// src/middlewares/auth.middleware.ts
|
|
98
|
-
import { dauth } from 'dauth-md-node';
|
|
98
|
+
import { dauth, IRequestDauth } from 'dauth-md-node';
|
|
99
99
|
import config from '../config/config';
|
|
100
100
|
|
|
101
101
|
export const dauth_md = dauth({
|
|
@@ -118,15 +118,15 @@ After `dauth_md` populates `req.user`, add your own guards:
|
|
|
118
118
|
// src/middlewares/auth.middleware.ts (continued)
|
|
119
119
|
import { Response, NextFunction } from 'express';
|
|
120
120
|
|
|
121
|
-
export const is_verified = async (req:
|
|
122
|
-
if (req.user.
|
|
121
|
+
export const is_verified = async (req: IRequestDauth, res: Response, next: NextFunction) => {
|
|
122
|
+
if (req.user.isVerified === false) {
|
|
123
123
|
return res.status(401).send({ status: 'not-verified', message: 'Email not verified' });
|
|
124
124
|
}
|
|
125
125
|
next();
|
|
126
126
|
};
|
|
127
127
|
|
|
128
|
-
export const ensure_admin = async (req:
|
|
129
|
-
if (req.user.
|
|
128
|
+
export const ensure_admin = async (req: IRequestDauth, res: Response, next: NextFunction) => {
|
|
129
|
+
if (req.user.isVerified === false) {
|
|
130
130
|
return res.status(401).send({ status: 'not-verified', message: 'Email not verified' });
|
|
131
131
|
}
|
|
132
132
|
if (req.user.role !== 'admin') {
|
|
@@ -159,7 +159,7 @@ export default licenseApi;
|
|
|
159
159
|
|
|
160
160
|
```typescript
|
|
161
161
|
// src/core/licenses/controllers/licenses.controller.ts
|
|
162
|
-
export const getMyLicenses = async (req:
|
|
162
|
+
export const getMyLicenses = async (req: IRequestDauth, res: Response) => {
|
|
163
163
|
const userId = req.user._id;
|
|
164
164
|
const licenses = await License.find({ user: userId });
|
|
165
165
|
res.status(200).json({ status: 'success', data: licenses });
|
|
@@ -339,11 +339,10 @@ function _asyncToGenerator(fn) {
|
|
|
339
339
|
}
|
|
340
340
|
|
|
341
341
|
var apiVersion = 'v1';
|
|
342
|
-
function getServerBasePath(
|
|
342
|
+
function getServerBasePath() {
|
|
343
343
|
var serverPort = 4012;
|
|
344
344
|
var serverLocalUrl = "http://localhost:" + serverPort + "/api/" + apiVersion;
|
|
345
|
-
|
|
346
|
-
return serverBasePath;
|
|
345
|
+
return serverLocalUrl ;
|
|
347
346
|
}
|
|
348
347
|
|
|
349
348
|
var fetch = /*#__PURE__*/require('node-fetch');
|
|
@@ -364,7 +363,7 @@ function _getUser() {
|
|
|
364
363
|
}
|
|
365
364
|
};
|
|
366
365
|
_context.next = 3;
|
|
367
|
-
return fetch(getServerBasePath() + "/
|
|
366
|
+
return fetch(getServerBasePath() + "/app/" + domainName + "/user", params);
|
|
368
367
|
case 3:
|
|
369
368
|
response = _context.sent;
|
|
370
369
|
_context.next = 6;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dauth-md-node.cjs.development.js","sources":["../src/api/utils/config.ts","../src/api/dauth.api.ts","../src/index.ts"],"sourcesContent":["export const apiVersion = 'v1';\nexport const serverDomain = 'dauth.ovh';\n\nexport function getServerBasePath(
|
|
1
|
+
{"version":3,"file":"dauth-md-node.cjs.development.js","sources":["../src/api/utils/config.ts","../src/api/dauth.api.ts","../src/index.ts"],"sourcesContent":["export const apiVersion = 'v1';\nexport const serverDomain = 'dauth.ovh';\n\nexport function getServerBasePath() {\n const isLocalhost = process.env.NODE_ENV === 'development';\n const serverPort = 4012;\n const serverLocalUrl = `http://localhost:${serverPort}/api/${apiVersion}`;\n const serverProdUrl = `https://${serverDomain}/api/${apiVersion}`;\n return isLocalhost ? serverLocalUrl : serverProdUrl;\n}\n","import { getServerBasePath } from './utils/config';\nconst fetch = require('node-fetch');\n\nexport async function getUser(token: string, domainName: string) {\n const params = {\n method: 'GET',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath()}/app/${domainName}/user`,\n params\n );\n const data = await response.json();\n return { response, data };\n}\n","import {\n Request,\n NextFunction,\n Response as ExpressResponse,\n Handler,\n} from 'express';\nimport jwt from 'jsonwebtoken';\nimport { getUser } from './api/dauth.api';\n\nexport interface IDauthUser {\n _id: string;\n name: string;\n lastname: string;\n nickname: string;\n email: string;\n isVerified: boolean;\n language: string;\n avatar: {\n id: string;\n url: string;\n };\n role: string;\n telPrefix: string;\n telSuffix: string;\n createdAt: Date;\n updatedAt: Date;\n lastLogin: Date;\n}\n\nexport interface IRequestDauth extends Request {\n user: IDauthUser;\n files: {\n image: { path: string };\n avatar: { path: string };\n };\n headers: {\n authorization: string;\n };\n}\n\ninterface TCustomResponse extends ExpressResponse {\n status(code: number): any;\n send(body?: any): any;\n}\n\nexport const dauth = ({\n domainName,\n tsk,\n}: {\n domainName: string;\n tsk: string;\n}) => {\n return (\n req: IRequestDauth,\n res: TCustomResponse,\n next: NextFunction\n ): Handler | void => {\n if (!req.headers.authorization) {\n return res\n .status(403)\n .send({ status: 'token-not-found', message: 'Token not found' });\n }\n const token = req.headers.authorization.replace(/['\"]+/g, '');\n try {\n jwt.verify(token, tsk as string);\n return getUser(token, domainName)\n .then((getUserFetch: any) => {\n if (getUserFetch.response.status === 404) {\n return res.status(404).send({\n status: 'user-not-found',\n message: getUserFetch.data.message ?? 'User does not exist',\n });\n } else if (getUserFetch.response.status === 500) {\n return res.status(500).send({\n status: 'error',\n message: getUserFetch.data.message ?? 'Dauth server error',\n });\n } else if (getUserFetch.response.status === 200) {\n req.user = getUserFetch.data.user;\n return next();\n } else {\n return res.status(501).send({\n status: 'request-error',\n message: getUserFetch.data.message ?? 'Dauth server error',\n });\n }\n })\n .catch((error: any) => {\n return res.status(500).send({\n status: 'server-error',\n message: error.message ?? 'Dauth server error',\n });\n });\n } catch (error) {\n if (error && error?.message === 'jwt expired') {\n return res.status(401).send({\n status: 'token-expired',\n message: error?.message ?? 'Token expired',\n });\n }\n if (error && error?.message === 'invalid signature') {\n return res.status(401).send({\n status: 'tsk-not-invalid',\n message: 'The TSK variable in the backend middleware is not valid',\n });\n }\n return res.status(401).send({\n status: 'token-invalid',\n message: error?.message ?? 'Token invalid',\n });\n }\n };\n};\n"],"names":["apiVersion","getServerBasePath","serverPort","serverLocalUrl","fetch","require","getUser","_x","_x2","_getUser","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","token","domainName","params","response","data","wrap","_callee$","_context","prev","next","method","headers","Authorization","sent","json","abrupt","stop","dauth","_ref","tsk","req","res","authorization","status","send","message","replace","jwt","verify","then","getUserFetch","_getUserFetch$data$me","_getUserFetch$data$me2","user","_getUserFetch$data$me3","error","_error$message","_error$message3","_error$message2"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAO,IAAMA,UAAU,GAAG,IAAI;SAGdC,iBAAiBA;EAE/B,IAAMC,UAAU,GAAG,IAAI;EACvB,IAAMC,cAAc,yBAAuBD,UAAU,aAAQF,UAAY;EAEzE,QAAqBG,cAAc,CAAgB;AACrD;;ACRA,IAAMC,KAAK,gBAAGC,OAAO,CAAC,YAAY,CAAC;AAEnC,SAAsBC,OAAOA,CAAAC,EAAA,EAAAC,GAAA;EAAA,OAAAC,QAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAc5B,SAAAF;EAAAA,QAAA,GAAAG,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAdM,SAAAC,QAAuBC,KAAa,EAAEC,UAAkB;IAAA,IAAAC,MAAA,EAAAC,QAAA,EAAAC,IAAA;IAAA,OAAAP,mBAAA,GAAAQ,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UACvDP,MAAM,GAAG;YACbQ,MAAM,EAAE,KAAK;YACbC,OAAO,EAAE;cACPC,aAAa,EAAEZ,KAAK;cACpB,cAAc,EAAE;;WAEnB;UAAAO,QAAA,CAAAE,IAAA;UAAA,OACsBrB,KAAK,CACvBH,iBAAiB,EAAE,aAAQgB,UAAU,YACxCC,MAAM,CACP;QAAA;UAHKC,QAAQ,GAAAI,QAAA,CAAAM,IAAA;UAAAN,QAAA,CAAAE,IAAA;UAAA,OAIKN,QAAQ,CAACW,IAAI,EAAE;QAAA;UAA5BV,IAAI,GAAAG,QAAA,CAAAM,IAAA;UAAA,OAAAN,QAAA,CAAAQ,MAAA,WACH;YAAEZ,QAAQ,EAARA,QAAQ;YAAEC,IAAI,EAAJA;WAAM;QAAA;QAAA;UAAA,OAAAG,QAAA,CAAAS,IAAA;;OAAAjB,OAAA;GAC1B;EAAA,OAAAN,QAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;;IC4BYsB,KAAK,GAAG,SAARA,KAAKA,CAAAC,IAAA;MAChBjB,UAAU,GAAAiB,IAAA,CAAVjB,UAAU;IACVkB,GAAG,GAAAD,IAAA,CAAHC,GAAG;EAKH,OAAO,UACLC,GAAkB,EAClBC,GAAoB,EACpBZ,IAAkB;IAElB,IAAI,CAACW,GAAG,CAACT,OAAO,CAACW,aAAa,EAAE;MAC9B,OAAOD,GAAG,CACPE,MAAM,CAAC,GAAG,CAAC,CACXC,IAAI,CAAC;QAAED,MAAM,EAAE,iBAAiB;QAAEE,OAAO,EAAE;OAAmB,CAAC;;IAEpE,IAAMzB,KAAK,GAAGoB,GAAG,CAACT,OAAO,CAACW,aAAa,CAACI,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;IAC7D,IAAI;MACFC,GAAG,CAACC,MAAM,CAAC5B,KAAK,EAAEmB,GAAa,CAAC;MAChC,OAAO7B,OAAO,CAACU,KAAK,EAAEC,UAAU,CAAC,CAC9B4B,IAAI,CAAC,UAACC,YAAiB;QACtB,IAAIA,YAAY,CAAC3B,QAAQ,CAACoB,MAAM,KAAK,GAAG,EAAE;UAAA,IAAAQ,qBAAA;UACxC,OAAOV,GAAG,CAACE,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC;YAC1BD,MAAM,EAAE,gBAAgB;YACxBE,OAAO,GAAAM,qBAAA,GAAED,YAAY,CAAC1B,IAAI,CAACqB,OAAO,YAAAM,qBAAA,GAAI;WACvC,CAAC;SACH,MAAM,IAAID,YAAY,CAAC3B,QAAQ,CAACoB,MAAM,KAAK,GAAG,EAAE;UAAA,IAAAS,sBAAA;UAC/C,OAAOX,GAAG,CAACE,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC;YAC1BD,MAAM,EAAE,OAAO;YACfE,OAAO,GAAAO,sBAAA,GAAEF,YAAY,CAAC1B,IAAI,CAACqB,OAAO,YAAAO,sBAAA,GAAI;WACvC,CAAC;SACH,MAAM,IAAIF,YAAY,CAAC3B,QAAQ,CAACoB,MAAM,KAAK,GAAG,EAAE;UAC/CH,GAAG,CAACa,IAAI,GAAGH,YAAY,CAAC1B,IAAI,CAAC6B,IAAI;UACjC,OAAOxB,IAAI,EAAE;SACd,MAAM;UAAA,IAAAyB,sBAAA;UACL,OAAOb,GAAG,CAACE,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC;YAC1BD,MAAM,EAAE,eAAe;YACvBE,OAAO,GAAAS,sBAAA,GAAEJ,YAAY,CAAC1B,IAAI,CAACqB,OAAO,YAAAS,sBAAA,GAAI;WACvC,CAAC;;OAEL,CAAC,SACI,CAAC,UAACC,KAAU;;QAChB,OAAOd,GAAG,CAACE,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC;UAC1BD,MAAM,EAAE,cAAc;UACtBE,OAAO,GAAAW,cAAA,GAAED,KAAK,CAACV,OAAO,YAAAW,cAAA,GAAI;SAC3B,CAAC;OACH,CAAC;KACL,CAAC,OAAOD,KAAK,EAAE;MAAA,IAAAE,eAAA;MACd,IAAIF,KAAK,IAAI,CAAAA,KAAK,oBAALA,KAAK,CAAEV,OAAO,MAAK,aAAa,EAAE;QAAA,IAAAa,eAAA;QAC7C,OAAOjB,GAAG,CAACE,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC;UAC1BD,MAAM,EAAE,eAAe;UACvBE,OAAO,GAAAa,eAAA,GAAEH,KAAK,oBAALA,KAAK,CAAEV,OAAO,YAAAa,eAAA,GAAI;SAC5B,CAAC;;MAEJ,IAAIH,KAAK,IAAI,CAAAA,KAAK,oBAALA,KAAK,CAAEV,OAAO,MAAK,mBAAmB,EAAE;QACnD,OAAOJ,GAAG,CAACE,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC;UAC1BD,MAAM,EAAE,iBAAiB;UACzBE,OAAO,EAAE;SACV,CAAC;;MAEJ,OAAOJ,GAAG,CAACE,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC;QAC1BD,MAAM,EAAE,eAAe;QACvBE,OAAO,GAAAY,eAAA,GAAEF,KAAK,oBAALA,KAAK,CAAEV,OAAO,YAAAY,eAAA,GAAI;OAC5B,CAAC;;GAEL;AACH,CAAC;;;;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t,e=(t=require("jsonwebtoken"))&&"object"==typeof t&&"default"in t?t.default:t;function r(){r=function(){return e};var t,e={},n=Object.prototype,o=n.hasOwnProperty,a=Object.defineProperty||function(t,e,r){t[e]=r.value},i="function"==typeof Symbol?Symbol:{},
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t,e=(t=require("jsonwebtoken"))&&"object"==typeof t&&"default"in t?t.default:t;function r(){r=function(){return e};var t,e={},n=Object.prototype,o=n.hasOwnProperty,a=Object.defineProperty||function(t,e,r){t[e]=r.value},i="function"==typeof Symbol?Symbol:{},s=i.iterator||"@@iterator",u=i.asyncIterator||"@@asyncIterator",c=i.toStringTag||"@@toStringTag";function l(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{l({},"")}catch(t){l=function(t,e,r){return t[e]=r}}function h(t,e,r,n){var o=Object.create((e&&e.prototype instanceof g?e:g).prototype),i=new G(n||[]);return a(o,"_invoke",{value:_(t,r,i)}),o}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=h;var p="suspendedStart",v="executing",d="completed",y={};function g(){}function m(){}function w(){}var x={};l(x,s,(function(){return this}));var b=Object.getPrototypeOf,L=b&&b(b(N([])));L&&L!==n&&o.call(L,s)&&(x=L);var E=w.prototype=g.prototype=Object.create(x);function j(t){["next","throw","return"].forEach((function(e){l(t,e,(function(t){return this._invoke(e,t)}))}))}function k(t,e){function r(n,a,i,s){var u=f(t[n],t,a);if("throw"!==u.type){var c=u.arg,l=c.value;return l&&"object"==typeof l&&o.call(l,"__await")?e.resolve(l.__await).then((function(t){r("next",t,i,s)}),(function(t){r("throw",t,i,s)})):e.resolve(l).then((function(t){c.value=t,i(c)}),(function(t){return r("throw",t,i,s)}))}s(u.arg)}var n;a(this,"_invoke",{value:function(t,o){function a(){return new e((function(e,n){r(t,o,e,n)}))}return n=n?n.then(a,a):a()}})}function _(e,r,n){var o=p;return function(a,i){if(o===v)throw new Error("Generator is already running");if(o===d){if("throw"===a)throw i;return{value:t,done:!0}}for(n.method=a,n.arg=i;;){var s=n.delegate;if(s){var u=O(s,n);if(u){if(u===y)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=d,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=v;var c=f(e,r,n);if("normal"===c.type){if(o=n.done?d:"suspendedYield",c.arg===y)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(o=d,n.method="throw",n.arg=c.arg)}}}function O(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,O(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),y;var a=f(o,e.iterator,r.arg);if("throw"===a.type)return r.method="throw",r.arg=a.arg,r.delegate=null,y;var i=a.arg;return i?i.done?(r[e.resultName]=i.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,y):i:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,y)}function T(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function P(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function G(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(T,this),this.reset(!0)}function N(e){if(e||""===e){var r=e[s];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,a=function r(){for(;++n<e.length;)if(o.call(e,n))return r.value=e[n],r.done=!1,r;return r.value=t,r.done=!0,r};return a.next=a}}throw new TypeError(typeof e+" is not iterable")}return m.prototype=w,a(E,"constructor",{value:w,configurable:!0}),a(w,"constructor",{value:m,configurable:!0}),m.displayName=l(w,c,"GeneratorFunction"),e.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===m||"GeneratorFunction"===(e.displayName||e.name))},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,w):(t.__proto__=w,l(t,c,"GeneratorFunction")),t.prototype=Object.create(E),t},e.awrap=function(t){return{__await:t}},j(k.prototype),l(k.prototype,u,(function(){return this})),e.AsyncIterator=k,e.async=function(t,r,n,o,a){void 0===a&&(a=Promise);var i=new k(h(t,r,n,o),a);return e.isGeneratorFunction(r)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},j(E),l(E,c,"Generator"),l(E,s,(function(){return this})),l(E,"toString",(function(){return"[object Generator]"})),e.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function t(){for(;r.length;){var n=r.pop();if(n in e)return t.value=n,t.done=!1,t}return t.done=!0,t}},e.values=N,G.prototype={constructor:G,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(P),!e)for(var r in this)"t"===r.charAt(0)&&o.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var r=this;function n(n,o){return s.type="throw",s.arg=e,r.next=n,o&&(r.method="next",r.arg=t),!!o}for(var a=this.tryEntries.length-1;a>=0;--a){var i=this.tryEntries[a],s=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var u=o.call(i,"catchLoc"),c=o.call(i,"finallyLoc");if(u&&c){if(this.prev<i.catchLoc)return n(i.catchLoc,!0);if(this.prev<i.finallyLoc)return n(i.finallyLoc)}else if(u){if(this.prev<i.catchLoc)return n(i.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return n(i.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&o.call(n,"finallyLoc")&&this.prev<n.finallyLoc){var a=n;break}}a&&("break"===t||"continue"===t)&&a.tryLoc<=e&&e<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=t,i.arg=e,a?(this.method="next",this.next=a.finallyLoc,y):this.complete(i)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),y},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),P(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;P(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:N(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y}},e}function n(t,e,r,n,o,a,i){try{var s=t[a](i),u=s.value}catch(t){return void r(t)}s.done?e(u):Promise.resolve(u).then(n,o)}function o(t){return function(){var e=this,r=arguments;return new Promise((function(o,a){var i=t.apply(e,r);function s(t){n(i,o,a,s,u,"next",t)}function u(t){n(i,o,a,s,u,"throw",t)}s(void 0)}))}}var a=require("node-fetch");function i(){return(i=o(r().mark((function t(e,n){var o,i;return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return o={method:"GET",headers:{Authorization:e,"Content-Type":"application/json"}},t.next=3,a("https://dauth.ovh/api/v1/app/"+n+"/user",o);case 3:return i=t.sent,t.next=6,i.json();case 6:return t.abrupt("return",{response:i,data:t.sent});case 8:case"end":return t.stop()}}),t)})))).apply(this,arguments)}exports.dauth=function(t){var r=t.domainName,n=t.tsk;return function(t,o,a){if(!t.headers.authorization)return o.status(403).send({status:"token-not-found",message:"Token not found"});var s=t.headers.authorization.replace(/['"]+/g,"");try{return e.verify(s,n),function(t,e){return i.apply(this,arguments)}(s,r).then((function(e){var r,n,i;return 404===e.response.status?o.status(404).send({status:"user-not-found",message:null!=(r=e.data.message)?r:"User does not exist"}):500===e.response.status?o.status(500).send({status:"error",message:null!=(n=e.data.message)?n:"Dauth server error"}):200===e.response.status?(t.user=e.data.user,a()):o.status(501).send({status:"request-error",message:null!=(i=e.data.message)?i:"Dauth server error"})})).catch((function(t){var e;return o.status(500).send({status:"server-error",message:null!=(e=t.message)?e:"Dauth server error"})}))}catch(t){var u,c;return t&&"jwt expired"===(null==t?void 0:t.message)?o.status(401).send({status:"token-expired",message:null!=(c=null==t?void 0:t.message)?c:"Token expired"}):t&&"invalid signature"===(null==t?void 0:t.message)?o.status(401).send({status:"tsk-not-invalid",message:"The TSK variable in the backend middleware is not valid"}):o.status(401).send({status:"token-invalid",message:null!=(u=null==t?void 0:t.message)?u:"Token invalid"})}}};
|
|
2
2
|
//# sourceMappingURL=dauth-md-node.cjs.production.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dauth-md-node.cjs.production.min.js","sources":["../src/api/
|
|
1
|
+
{"version":3,"file":"dauth-md-node.cjs.production.min.js","sources":["../src/api/dauth.api.ts","../src/index.ts"],"sourcesContent":["import { getServerBasePath } from './utils/config';\nconst fetch = require('node-fetch');\n\nexport async function getUser(token: string, domainName: string) {\n const params = {\n method: 'GET',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath()}/app/${domainName}/user`,\n params\n );\n const data = await response.json();\n return { response, data };\n}\n","import {\n Request,\n NextFunction,\n Response as ExpressResponse,\n Handler,\n} from 'express';\nimport jwt from 'jsonwebtoken';\nimport { getUser } from './api/dauth.api';\n\nexport interface IDauthUser {\n _id: string;\n name: string;\n lastname: string;\n nickname: string;\n email: string;\n isVerified: boolean;\n language: string;\n avatar: {\n id: string;\n url: string;\n };\n role: string;\n telPrefix: string;\n telSuffix: string;\n createdAt: Date;\n updatedAt: Date;\n lastLogin: Date;\n}\n\nexport interface IRequestDauth extends Request {\n user: IDauthUser;\n files: {\n image: { path: string };\n avatar: { path: string };\n };\n headers: {\n authorization: string;\n };\n}\n\ninterface TCustomResponse extends ExpressResponse {\n status(code: number): any;\n send(body?: any): any;\n}\n\nexport const dauth = ({\n domainName,\n tsk,\n}: {\n domainName: string;\n tsk: string;\n}) => {\n return (\n req: IRequestDauth,\n res: TCustomResponse,\n next: NextFunction\n ): Handler | void => {\n if (!req.headers.authorization) {\n return res\n .status(403)\n .send({ status: 'token-not-found', message: 'Token not found' });\n }\n const token = req.headers.authorization.replace(/['\"]+/g, '');\n try {\n jwt.verify(token, tsk as string);\n return getUser(token, domainName)\n .then((getUserFetch: any) => {\n if (getUserFetch.response.status === 404) {\n return res.status(404).send({\n status: 'user-not-found',\n message: getUserFetch.data.message ?? 'User does not exist',\n });\n } else if (getUserFetch.response.status === 500) {\n return res.status(500).send({\n status: 'error',\n message: getUserFetch.data.message ?? 'Dauth server error',\n });\n } else if (getUserFetch.response.status === 200) {\n req.user = getUserFetch.data.user;\n return next();\n } else {\n return res.status(501).send({\n status: 'request-error',\n message: getUserFetch.data.message ?? 'Dauth server error',\n });\n }\n })\n .catch((error: any) => {\n return res.status(500).send({\n status: 'server-error',\n message: error.message ?? 'Dauth server error',\n });\n });\n } catch (error) {\n if (error && error?.message === 'jwt expired') {\n return res.status(401).send({\n status: 'token-expired',\n message: error?.message ?? 'Token expired',\n });\n }\n if (error && error?.message === 'invalid signature') {\n return res.status(401).send({\n status: 'tsk-not-invalid',\n message: 'The TSK variable in the backend middleware is not valid',\n });\n }\n return res.status(401).send({\n status: 'token-invalid',\n message: error?.message ?? 'Token invalid',\n });\n }\n };\n};\n"],"names":["fetch","require","_getUser","_asyncToGenerator","_regeneratorRuntime","mark","_callee","token","domainName","params","response","wrap","_context","prev","next","method","headers","Authorization","Content-Type","getServerBasePath","sent","json","abrupt","data","stop","apply","arguments","_ref","tsk","req","res","authorization","status","send","message","replace","jwt","verify","_x","_x2","getUser","then","getUserFetch","_getUserFetch$data$me","_getUserFetch$data$me2","_getUserFetch$data$me3","user","error","_error$message","_error$message3","_error$message2"],"mappings":"+zNACA,IAAMA,EAAQC,QAAQ,cAgBrB,SAAAC,IAAA,OAAAA,EAAAC,EAAAC,IAAAC,MAdM,SAAAC,EAAuBC,EAAeC,GAAkB,IAAAC,EAAAC,EAAA,OAAAN,IAAAO,eAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAO5D,OANKL,EAAS,CACbM,OAAQ,MACRC,QAAS,CACPC,cAAeV,EACfW,eAAgB,qBAEnBN,EAAAE,OACsBd,EAClBmB,gCAA2BX,UAC9BC,GACD,OAHa,OAARC,EAAQE,EAAAQ,KAAAR,EAAAE,OAIKJ,EAASW,OAAM,OAAxB,OAAAT,EAAAU,gBACH,CAAEZ,SAAAA,EAAUa,KADTX,EAAAQ,OACe,OAAA,UAAA,OAAAR,EAAAY,UAAAlB,QAC1BmB,WAAAC,yBC4BoB,SAAHC,OAChBnB,EAAUmB,EAAVnB,WACAoB,EAAGD,EAAHC,IAKA,OAAO,SACLC,EACAC,EACAhB,GAEA,IAAKe,EAAIb,QAAQe,cACf,OAAOD,EACJE,OAAO,KACPC,KAAK,CAAED,OAAQ,kBAAmBE,QAAS,oBAEhD,IAAM3B,EAAQsB,EAAIb,QAAQe,cAAcI,QAAQ,SAAU,IAC1D,IAEE,OADAC,EAAIC,OAAO9B,EAAOqB,YD7DKU,EAAAC,GAAA,OAAArC,EAAAuB,WAAAC,WC8DhBc,CAAQjC,EAAOC,GACnBiC,MAAK,SAACC,GACqC,IAAAC,EAKOC,EAQ1CC,EAbP,OAAqC,MAAjCH,EAAahC,SAASsB,OACjBF,EAAIE,OAAO,KAAKC,KAAK,CAC1BD,OAAQ,iBACRE,eAAOS,EAAED,EAAanB,KAAKW,SAAOS,EAAI,wBAEE,MAAjCD,EAAahC,SAASsB,OACxBF,EAAIE,OAAO,KAAKC,KAAK,CAC1BD,OAAQ,QACRE,eAAOU,EAAEF,EAAanB,KAAKW,SAAOU,EAAI,uBAEE,MAAjCF,EAAahC,SAASsB,QAC/BH,EAAIiB,KAAOJ,EAAanB,KAAKuB,KACtBhC,KAEAgB,EAAIE,OAAO,KAAKC,KAAK,CAC1BD,OAAQ,gBACRE,eAAOW,EAAEH,EAAanB,KAAKW,SAAOW,EAAI,iCAIrC,SAACE,SACN,OAAOjB,EAAIE,OAAO,KAAKC,KAAK,CAC1BD,OAAQ,eACRE,eAAOc,EAAED,EAAMb,SAAOc,EAAI,0BAGhC,MAAOD,GAAO,IAAAE,EACiCC,EAA/C,OAAIH,GAA4B,uBAAnBA,SAAAA,EAAOb,SACXJ,EAAIE,OAAO,KAAKC,KAAK,CAC1BD,OAAQ,gBACRE,eAAOgB,QAAEH,SAAAA,EAAOb,SAAOgB,EAAI,kBAG3BH,GAA4B,6BAAnBA,SAAAA,EAAOb,SACXJ,EAAIE,OAAO,KAAKC,KAAK,CAC1BD,OAAQ,kBACRE,QAAS,4DAGNJ,EAAIE,OAAO,KAAKC,KAAK,CAC1BD,OAAQ,gBACRE,eAAOe,QAAEF,SAAAA,EAAOb,SAAOe,EAAI"}
|
|
@@ -334,14 +334,12 @@ function _asyncToGenerator(fn) {
|
|
|
334
334
|
|
|
335
335
|
var apiVersion = 'v1';
|
|
336
336
|
var serverDomain = 'dauth.ovh';
|
|
337
|
-
function getServerBasePath(
|
|
338
|
-
var domainName = _ref.domainName;
|
|
337
|
+
function getServerBasePath() {
|
|
339
338
|
var isLocalhost = process.env.NODE_ENV === 'development';
|
|
340
339
|
var serverPort = 4012;
|
|
341
340
|
var serverLocalUrl = "http://localhost:" + serverPort + "/api/" + apiVersion;
|
|
342
|
-
var serverProdUrl = "https://" +
|
|
343
|
-
|
|
344
|
-
return serverBasePath;
|
|
341
|
+
var serverProdUrl = "https://" + serverDomain + "/api/" + apiVersion;
|
|
342
|
+
return isLocalhost ? serverLocalUrl : serverProdUrl;
|
|
345
343
|
}
|
|
346
344
|
|
|
347
345
|
var fetch = /*#__PURE__*/require('node-fetch');
|
|
@@ -362,9 +360,7 @@ function _getUser() {
|
|
|
362
360
|
}
|
|
363
361
|
};
|
|
364
362
|
_context.next = 3;
|
|
365
|
-
return fetch(getServerBasePath(
|
|
366
|
-
domainName: domainName
|
|
367
|
-
}) + "/t-get-user/" + domainName, params);
|
|
363
|
+
return fetch(getServerBasePath() + "/app/" + domainName + "/user", params);
|
|
368
364
|
case 3:
|
|
369
365
|
response = _context.sent;
|
|
370
366
|
_context.next = 6;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dauth-md-node.esm.js","sources":["../src/api/utils/config.ts","../src/api/dauth.api.ts","../src/index.ts"],"sourcesContent":["export const apiVersion = 'v1';\nexport const serverDomain = 'dauth.ovh';\n\nexport function getServerBasePath(
|
|
1
|
+
{"version":3,"file":"dauth-md-node.esm.js","sources":["../src/api/utils/config.ts","../src/api/dauth.api.ts","../src/index.ts"],"sourcesContent":["export const apiVersion = 'v1';\nexport const serverDomain = 'dauth.ovh';\n\nexport function getServerBasePath() {\n const isLocalhost = process.env.NODE_ENV === 'development';\n const serverPort = 4012;\n const serverLocalUrl = `http://localhost:${serverPort}/api/${apiVersion}`;\n const serverProdUrl = `https://${serverDomain}/api/${apiVersion}`;\n return isLocalhost ? serverLocalUrl : serverProdUrl;\n}\n","import { getServerBasePath } from './utils/config';\nconst fetch = require('node-fetch');\n\nexport async function getUser(token: string, domainName: string) {\n const params = {\n method: 'GET',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath()}/app/${domainName}/user`,\n params\n );\n const data = await response.json();\n return { response, data };\n}\n","import {\n Request,\n NextFunction,\n Response as ExpressResponse,\n Handler,\n} from 'express';\nimport jwt from 'jsonwebtoken';\nimport { getUser } from './api/dauth.api';\n\nexport interface IDauthUser {\n _id: string;\n name: string;\n lastname: string;\n nickname: string;\n email: string;\n isVerified: boolean;\n language: string;\n avatar: {\n id: string;\n url: string;\n };\n role: string;\n telPrefix: string;\n telSuffix: string;\n createdAt: Date;\n updatedAt: Date;\n lastLogin: Date;\n}\n\nexport interface IRequestDauth extends Request {\n user: IDauthUser;\n files: {\n image: { path: string };\n avatar: { path: string };\n };\n headers: {\n authorization: string;\n };\n}\n\ninterface TCustomResponse extends ExpressResponse {\n status(code: number): any;\n send(body?: any): any;\n}\n\nexport const dauth = ({\n domainName,\n tsk,\n}: {\n domainName: string;\n tsk: string;\n}) => {\n return (\n req: IRequestDauth,\n res: TCustomResponse,\n next: NextFunction\n ): Handler | void => {\n if (!req.headers.authorization) {\n return res\n .status(403)\n .send({ status: 'token-not-found', message: 'Token not found' });\n }\n const token = req.headers.authorization.replace(/['\"]+/g, '');\n try {\n jwt.verify(token, tsk as string);\n return getUser(token, domainName)\n .then((getUserFetch: any) => {\n if (getUserFetch.response.status === 404) {\n return res.status(404).send({\n status: 'user-not-found',\n message: getUserFetch.data.message ?? 'User does not exist',\n });\n } else if (getUserFetch.response.status === 500) {\n return res.status(500).send({\n status: 'error',\n message: getUserFetch.data.message ?? 'Dauth server error',\n });\n } else if (getUserFetch.response.status === 200) {\n req.user = getUserFetch.data.user;\n return next();\n } else {\n return res.status(501).send({\n status: 'request-error',\n message: getUserFetch.data.message ?? 'Dauth server error',\n });\n }\n })\n .catch((error: any) => {\n return res.status(500).send({\n status: 'server-error',\n message: error.message ?? 'Dauth server error',\n });\n });\n } catch (error) {\n if (error && error?.message === 'jwt expired') {\n return res.status(401).send({\n status: 'token-expired',\n message: error?.message ?? 'Token expired',\n });\n }\n if (error && error?.message === 'invalid signature') {\n return res.status(401).send({\n status: 'tsk-not-invalid',\n message: 'The TSK variable in the backend middleware is not valid',\n });\n }\n return res.status(401).send({\n status: 'token-invalid',\n message: error?.message ?? 'Token invalid',\n });\n }\n };\n};\n"],"names":["apiVersion","serverDomain","getServerBasePath","isLocalhost","process","env","NODE_ENV","serverPort","serverLocalUrl","serverProdUrl","fetch","require","getUser","_x","_x2","_getUser","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","token","domainName","params","response","data","wrap","_callee$","_context","prev","next","method","headers","Authorization","sent","json","abrupt","stop","dauth","_ref","tsk","req","res","authorization","status","send","message","replace","jwt","verify","then","getUserFetch","_getUserFetch$data$me","_getUserFetch$data$me2","user","_getUserFetch$data$me3","error","_error$message","_error$message3","_error$message2"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,28 +1,25 @@
|
|
|
1
1
|
import { Request, NextFunction, Response as ExpressResponse, Handler } from 'express';
|
|
2
|
-
interface
|
|
2
|
+
export interface IDauthUser {
|
|
3
3
|
_id: string;
|
|
4
|
-
dauthLicense?: string;
|
|
5
|
-
sid: string;
|
|
6
4
|
name: string;
|
|
7
5
|
lastname: string;
|
|
8
6
|
nickname: string;
|
|
9
7
|
email: string;
|
|
10
|
-
|
|
8
|
+
isVerified: boolean;
|
|
11
9
|
language: string;
|
|
12
10
|
avatar: {
|
|
13
11
|
id: string;
|
|
14
12
|
url: string;
|
|
15
13
|
};
|
|
16
14
|
role: string;
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
telPrefix: string;
|
|
16
|
+
telSuffix: string;
|
|
19
17
|
createdAt: Date;
|
|
20
18
|
updatedAt: Date;
|
|
21
|
-
|
|
22
|
-
__v: string | any;
|
|
19
|
+
lastLogin: Date;
|
|
23
20
|
}
|
|
24
|
-
interface
|
|
25
|
-
user:
|
|
21
|
+
export interface IRequestDauth extends Request {
|
|
22
|
+
user: IDauthUser;
|
|
26
23
|
files: {
|
|
27
24
|
image: {
|
|
28
25
|
path: string;
|
|
@@ -42,5 +39,5 @@ interface TCustomResponse extends ExpressResponse {
|
|
|
42
39
|
export declare const dauth: ({ domainName, tsk, }: {
|
|
43
40
|
domainName: string;
|
|
44
41
|
tsk: string;
|
|
45
|
-
}) => (req:
|
|
42
|
+
}) => (req: IRequestDauth, res: TCustomResponse, next: NextFunction) => Handler | void;
|
|
46
43
|
export {};
|
package/package.json
CHANGED
package/src/api/dauth.api.ts
CHANGED
|
@@ -10,7 +10,7 @@ export async function getUser(token: string, domainName: string) {
|
|
|
10
10
|
},
|
|
11
11
|
};
|
|
12
12
|
const response = await fetch(
|
|
13
|
-
`${getServerBasePath(
|
|
13
|
+
`${getServerBasePath()}/app/${domainName}/user`,
|
|
14
14
|
params
|
|
15
15
|
);
|
|
16
16
|
const data = await response.json();
|
package/src/api/utils/config.ts
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
export const apiVersion = 'v1';
|
|
2
2
|
export const serverDomain = 'dauth.ovh';
|
|
3
3
|
|
|
4
|
-
export function getServerBasePath(
|
|
4
|
+
export function getServerBasePath() {
|
|
5
5
|
const isLocalhost = process.env.NODE_ENV === 'development';
|
|
6
6
|
const serverPort = 4012;
|
|
7
7
|
const serverLocalUrl = `http://localhost:${serverPort}/api/${apiVersion}`;
|
|
8
|
-
const serverProdUrl = `https://${
|
|
9
|
-
|
|
10
|
-
return serverBasePath;
|
|
8
|
+
const serverProdUrl = `https://${serverDomain}/api/${apiVersion}`;
|
|
9
|
+
return isLocalhost ? serverLocalUrl : serverProdUrl;
|
|
11
10
|
}
|
package/src/index.ts
CHANGED
|
@@ -7,31 +7,28 @@ import {
|
|
|
7
7
|
import jwt from 'jsonwebtoken';
|
|
8
8
|
import { getUser } from './api/dauth.api';
|
|
9
9
|
|
|
10
|
-
interface
|
|
10
|
+
export interface IDauthUser {
|
|
11
11
|
_id: string;
|
|
12
|
-
dauthLicense?: string;
|
|
13
|
-
sid: string;
|
|
14
12
|
name: string;
|
|
15
13
|
lastname: string;
|
|
16
14
|
nickname: string;
|
|
17
15
|
email: string;
|
|
18
|
-
|
|
16
|
+
isVerified: boolean;
|
|
19
17
|
language: string;
|
|
20
18
|
avatar: {
|
|
21
19
|
id: string;
|
|
22
20
|
url: string;
|
|
23
21
|
};
|
|
24
22
|
role: string;
|
|
25
|
-
|
|
26
|
-
|
|
23
|
+
telPrefix: string;
|
|
24
|
+
telSuffix: string;
|
|
27
25
|
createdAt: Date;
|
|
28
26
|
updatedAt: Date;
|
|
29
|
-
|
|
30
|
-
__v: string | any;
|
|
27
|
+
lastLogin: Date;
|
|
31
28
|
}
|
|
32
29
|
|
|
33
|
-
interface
|
|
34
|
-
user:
|
|
30
|
+
export interface IRequestDauth extends Request {
|
|
31
|
+
user: IDauthUser;
|
|
35
32
|
files: {
|
|
36
33
|
image: { path: string };
|
|
37
34
|
avatar: { path: string };
|
|
@@ -54,7 +51,7 @@ export const dauth = ({
|
|
|
54
51
|
tsk: string;
|
|
55
52
|
}) => {
|
|
56
53
|
return (
|
|
57
|
-
req:
|
|
54
|
+
req: IRequestDauth,
|
|
58
55
|
res: TCustomResponse,
|
|
59
56
|
next: NextFunction
|
|
60
57
|
): Handler | void => {
|