dauth-md-node 0.2.14 → 0.2.16

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 CHANGED
@@ -1,103 +1,204 @@
1
- # TSDX User Guide
1
+ # dauth-md-node
2
2
 
3
- Congrats! You just saved yourself hours of work by bootstrapping this project with TSDX. Let’s get you oriented with what’s here and how to use it.
3
+ Express middleware for JWT-based authentication against the [DAuth](https://dauth.ovh) service. Verifies tenant JWTs and fetches the authenticated user from the DAuth backend, attaching it to `req.user`.
4
4
 
5
- > This TSDX setup is meant for developing libraries (not apps!) that can be published to NPM. If you’re looking to build a Node app, you could use `ts-node-dev`, plain `ts-node`, or simple `tsc`.
6
-
7
- > If you’re new to TypeScript, checkout [this handy cheatsheet](https://devhints.io/typescript)
8
-
9
- ## Commands
10
-
11
- TSDX scaffolds your new library inside `/src`.
12
-
13
- To run TSDX, use:
5
+ ## Installation
14
6
 
15
7
  ```bash
16
- npm start # or yarn start
8
+ npm install dauth-md-node
9
+ # or
10
+ yarn add dauth-md-node
17
11
  ```
18
12
 
19
- This builds to `/dist` and runs the project in watch mode so any edits you save inside `src` causes a rebuild to `/dist`.
13
+ ## Quick Start
20
14
 
21
- To do a one-off build, use `npm run build` or `yarn build`.
15
+ ```typescript
16
+ import express from 'express';
17
+ import { dauth } from 'dauth-md-node';
22
18
 
23
- To run tests, use `npm test` or `yarn test`.
19
+ const app = express();
24
20
 
25
- ## Configuration
21
+ // Apply DAuth middleware to protected routes
22
+ const dauthMiddleware = dauth({
23
+ domainName: 'your-domain-name',
24
+ tsk: 'your-tenant-secret-key',
25
+ });
26
26
 
27
- Code quality is set up for you with `prettier`, `husky`, and `lint-staged`. Adjust the respective fields in `package.json` accordingly.
27
+ app.get('/api/protected', dauthMiddleware, (req, res) => {
28
+ // req.user is populated with the authenticated user object
29
+ res.json({ user: req.user });
30
+ });
28
31
 
29
- ### Jest
32
+ app.listen(4000);
33
+ ```
30
34
 
31
- Jest tests are set up to run with `npm test` or `yarn test`.
35
+ ## API
36
+
37
+ ### `dauth(options)`
38
+
39
+ Factory function that returns an Express middleware.
40
+
41
+ | Parameter | Type | Description |
42
+ |---|---|---|
43
+ | `domainName` | `string` | Your DAuth domain name (used for API routing) |
44
+ | `tsk` | `string` | Tenant Secret Key for local JWT verification |
45
+
46
+ ### Middleware Behavior
47
+
48
+ 1. Extracts the `Authorization` header from the request
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 /t-get-user/:domainName`)
51
+ 4. Attaches the user to `req.user`
52
+ 5. Calls `next()` on success
53
+
54
+ ### Error Responses
55
+
56
+ | Scenario | Status | Response Status Field |
57
+ |---|---|---|
58
+ | Missing `Authorization` header | 403 | `token-not-found` |
59
+ | JWT expired | 401 | `token-expired` |
60
+ | Invalid JWT or bad TSK | 401 | `tsk-not-invalid` or `token-invalid` |
61
+ | User not found in DAuth backend | 404 | `user-not-found` |
62
+ | DAuth backend server error | 500 | `error` |
63
+ | Other backend status | 501 | `request-error` |
64
+
65
+ ### `req.user` Object
66
+
67
+ When authentication succeeds, `req.user` contains:
68
+
69
+ ```typescript
70
+ interface ITenantUser {
71
+ _id: string;
72
+ dauthLicense?: string;
73
+ sid: string;
74
+ name: string;
75
+ lastname: string;
76
+ nickname: string;
77
+ email: string;
78
+ is_verified: boolean;
79
+ language: string;
80
+ avatar: { id: string; url: string };
81
+ role: string;
82
+ tel_prefix: string;
83
+ tel_suffix: string;
84
+ createdAt: Date;
85
+ updatedAt: Date;
86
+ last_login: Date;
87
+ }
88
+ ```
32
89
 
33
- ### Bundle Analysis
90
+ ## Real-World Integration Example
34
91
 
35
- [`size-limit`](https://github.com/ai/size-limit) is set up to calculate the real cost of your library with `npm run size` and visualize the bundle with `npm run analyze`.
92
+ This is the pattern used in `easymediacloud-backend-node`, which delegates all user authentication to dauth.
36
93
 
37
- #### Setup Files
94
+ ### 1. Initialize the middleware from environment variables
38
95
 
39
- This is the folder structure we set up for you:
96
+ ```typescript
97
+ // src/middlewares/auth.middleware.ts
98
+ import { dauth } from 'dauth-md-node';
99
+ import config from '../config/config';
40
100
 
41
- ```txt
42
- /src
43
- index.tsx # EDIT THIS
44
- /test
45
- blah.test.tsx # EDIT THIS
46
- .gitignore
47
- package.json
48
- README.md # EDIT THIS
49
- tsconfig.json
101
+ export const dauth_md = dauth({
102
+ tsk: config.dauth.TSK as string,
103
+ domainName: config.dauth.DOMAIN_NAME as string,
104
+ });
50
105
  ```
51
106
 
52
- ### Rollup
53
-
54
- TSDX uses [Rollup](https://rollupjs.org) as a bundler and generates multiple rollup configs for various module formats and build settings. See [Optimizations](#optimizations) for details.
55
-
56
- ### TypeScript
57
-
58
- `tsconfig.json` is set up to interpret `dom` and `esnext` types, as well as `react` for `jsx`. Adjust according to your needs.
107
+ Environment variables (`.env.development`):
108
+ ```
109
+ DAUTH_TSK=your-tenant-secret-key
110
+ DAUTH_DOMAIN_NAME=your-domain-name
111
+ ```
59
112
 
60
- ## Continuous Integration
113
+ ### 2. Build custom middleware chains on top
114
+
115
+ After `dauth_md` populates `req.user`, add your own guards:
116
+
117
+ ```typescript
118
+ // src/middlewares/auth.middleware.ts (continued)
119
+ import { Response, NextFunction } from 'express';
120
+
121
+ export const is_verified = async (req: IRequestUser, res: Response, next: NextFunction) => {
122
+ if (req.user.is_verified === false) {
123
+ return res.status(401).send({ status: 'not-verified', message: 'Email not verified' });
124
+ }
125
+ next();
126
+ };
127
+
128
+ export const ensure_admin = async (req: IRequestUser, res: Response, next: NextFunction) => {
129
+ if (req.user.is_verified === false) {
130
+ return res.status(401).send({ status: 'not-verified', message: 'Email not verified' });
131
+ }
132
+ if (req.user.role !== 'admin') {
133
+ return res.status(401).send({ status: 'not-admin', message: 'Admin role required' });
134
+ }
135
+ next();
136
+ };
137
+ ```
61
138
 
62
- ### GitHub Actions
139
+ ### 3. Apply middleware chains to routes
63
140
 
64
- Two actions are added by default:
141
+ ```typescript
142
+ // src/core/licenses/router/licenses.router.ts
143
+ import { Router } from 'express';
144
+ import { dauth_md, is_verified, ensure_admin } from '../../../middlewares/auth.middleware';
145
+ import * as controller from '../controllers/licenses.controller';
65
146
 
66
- - `main` which installs deps w/ cache, lints, tests, and builds on all pushes against a Node and OS matrix
67
- - `size` which comments cost comparison of your library on every pull request using [`size-limit`](https://github.com/ai/size-limit)
147
+ const licenseApi = Router();
68
148
 
69
- ## Optimizations
149
+ licenseApi
150
+ .post('/create-license', [dauth_md, is_verified], controller.createLicense)
151
+ .get('/get-my-licenses', [dauth_md, is_verified], controller.getMyLicenses)
152
+ .patch('/enable-license/:licenseId', [dauth_md, ensure_admin], controller.enableLicense)
153
+ .delete('/delete-license/:licenseId', [dauth_md, is_verified], controller.deleteLicense);
70
154
 
71
- Please see the main `tsdx` [optimizations docs](https://github.com/palmerhq/tsdx#optimizations). In particular, know that you can take advantage of development-only optimizations:
155
+ export default licenseApi;
156
+ ```
72
157
 
73
- ```js
74
- // ./types/index.d.ts
75
- declare var __DEV__: boolean;
158
+ ### 4. Access the user in controllers
76
159
 
77
- // inside your code...
78
- if (__DEV__) {
79
- console.log('foo');
80
- }
160
+ ```typescript
161
+ // src/core/licenses/controllers/licenses.controller.ts
162
+ export const getMyLicenses = async (req: IRequestUser, res: Response) => {
163
+ const userId = req.user._id;
164
+ const licenses = await License.find({ user: userId });
165
+ res.status(200).json({ status: 'success', data: licenses });
166
+ };
81
167
  ```
82
168
 
83
- You can also choose to install and use [invariant](https://github.com/palmerhq/tsdx#invariant) and [warning](https://github.com/palmerhq/tsdx#warning) functions.
169
+ ## Environment Detection
170
+
171
+ - **Development** (`NODE_ENV=development`): Routes API calls to `http://localhost:4012/api/v1`
172
+ - **Production**: Routes API calls to `https://<domainName>.dauth.ovh/api/v1`
84
173
 
85
- ## Module Formats
174
+ ## Development
86
175
 
87
- CJS, ESModules, and UMD module formats are supported.
176
+ ```bash
177
+ npm start # Watch mode (tsdx watch)
178
+ npm run build # Production build (CJS + ESM)
179
+ npm test # Run Jest tests
180
+ npm run lint # ESLint via tsdx
181
+ npm run size # Check bundle size (10KB budget per entry)
182
+ npm run analyze # Bundle size analysis with visualization
183
+ ```
88
184
 
89
- The appropriate paths are configured in `package.json` and `dist/index.js` accordingly. Please report if any issues are found.
185
+ ### Bundle Outputs
90
186
 
91
- ## Named Exports
187
+ - **CJS:** `dist/index.js` (with `.development.js` and `.production.min.js` variants)
188
+ - **ESM:** `dist/dauth-md-node.esm.js`
189
+ - **Types:** `dist/index.d.ts`
92
190
 
93
- Per Palmer Group guidelines, [always use named exports.](https://github.com/palmerhq/typescript#exports) Code split inside your React app instead of your React library.
191
+ ## Dependencies
94
192
 
95
- ## Including Styles
193
+ - `express` >= 4
194
+ - `jsonwebtoken` >= 9
195
+ - `mongoose` >= 8
196
+ - `node-fetch` ^2.6
96
197
 
97
- There are many ways to ship styles, including with CSS-in-JS. TSDX has no opinion on this, configure how you like.
198
+ ## Author
98
199
 
99
- For vanilla CSS, you can include it at the root directory and add it to the `files` section in your `package.json`, so that it can be imported separately by your users and run through their bundler's loader.
200
+ David T. Pizarro Frick
100
201
 
101
- ## Publishing to NPM
202
+ ## License
102
203
 
103
- We recommend using [np](https://github.com/sindresorhus/np).
204
+ MIT
@@ -396,13 +396,8 @@ var dauth = function dauth(_ref) {
396
396
  }
397
397
  var token = req.headers.authorization.replace(/['"]+/g, '');
398
398
  try {
399
- console.log({
400
- token: token,
401
- tsk: tsk
402
- });
403
- var verify = jwt.verify(token, tsk);
404
- if (!verify) return;
405
- getUser(token, domainName).then(function (getUserFetch) {
399
+ jwt.verify(token, tsk);
400
+ return getUser(token, domainName).then(function (getUserFetch) {
406
401
  if (getUserFetch.response.status === 404) {
407
402
  var _getUserFetch$data$me;
408
403
  return res.status(404).send({
@@ -429,8 +424,7 @@ var dauth = function dauth(_ref) {
429
424
  var _error$message;
430
425
  return res.status(500).send({
431
426
  status: 'server-error',
432
- message: (_error$message = error.message) != null ? _error$message : 'Dauth server error',
433
- error: error
427
+ message: (_error$message = error.message) != null ? _error$message : 'Dauth server error'
434
428
  });
435
429
  });
436
430
  } catch (error) {
@@ -445,7 +439,7 @@ var dauth = function dauth(_ref) {
445
439
  if (error && (error == null ? void 0 : error.message) === 'invalid signature') {
446
440
  return res.status(401).send({
447
441
  status: 'tsk-not-invalid',
448
- message: 'The TSK variable in the backendo middleware is not valid'
442
+ message: 'The TSK variable in the backend middleware is not valid'
449
443
  });
450
444
  }
451
445
  return res.status(401).send({
@@ -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":["const isLocalhost = process.env.NODE_ENV === 'development';\nexport const apiVersion = 'v1';\nexport const serverDomain = 'dauth.ovh';\n\nexport function getServerBasePath({ domainName }: { domainName: string }) {\n const serverPort = 4012;\n const serverLocalUrl = `http://localhost:${serverPort}/api/${apiVersion}`;\n const serverProdUrl = `https://${domainName}.${serverDomain}/api/${apiVersion}`;\n const serverBasePath = isLocalhost ? serverLocalUrl : serverProdUrl;\n return serverBasePath;\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({ domainName })}/t-get-user/${domainName}`,\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\ninterface ITenantUser {\n _id: string;\n dauthLicense?: string;\n sid: string;\n name: string;\n lastname: string;\n nickname: string;\n email: string;\n is_verified: boolean;\n language: string;\n avatar: {\n id: string;\n url: string;\n };\n role: string;\n tel_prefix: string;\n tel_suffix: string;\n createdAt: Date;\n updatedAt: Date;\n last_login: Date;\n __v: string | any;\n}\n\ninterface IRequestUser extends Request {\n user: ITenantUser;\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: IRequestUser,\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 console.log({ token, tsk });\n const verify = jwt.verify(token, tsk as string);\n if (!verify) return;\n 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 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 backendo 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","_ref","serverPort","serverLocalUrl","serverBasePath","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","tsk","req","res","authorization","status","send","message","replace","console","log","verify","jwt","then","getUserFetch","_getUserFetch$data$me","_getUserFetch$data$me2","user","_getUserFetch$data$me3","error","_error$message","_error$message3","_error$message2"],"mappings":"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"}
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({ domainName }: { domainName: string }) {\n const isLocalhost = process.env.NODE_ENV === 'development';\n const serverPort = 4012;\n const serverLocalUrl = `http://localhost:${serverPort}/api/${apiVersion}`;\n const serverProdUrl = `https://${domainName}.${serverDomain}/api/${apiVersion}`;\n const serverBasePath = isLocalhost ? serverLocalUrl : serverProdUrl;\n return serverBasePath;\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({ domainName })}/t-get-user/${domainName}`,\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\ninterface ITenantUser {\n _id: string;\n dauthLicense?: string;\n sid: string;\n name: string;\n lastname: string;\n nickname: string;\n email: string;\n is_verified: boolean;\n language: string;\n avatar: {\n id: string;\n url: string;\n };\n role: string;\n tel_prefix: string;\n tel_suffix: string;\n createdAt: Date;\n updatedAt: Date;\n last_login: Date;\n __v: string | any;\n}\n\ninterface IRequestUser extends Request {\n user: ITenantUser;\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: IRequestUser,\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","_ref","serverPort","serverLocalUrl","serverBasePath","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","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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"}
@@ -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:{},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 P(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",d="executing",v="completed",y={};function g(){}function m(){}function w(){}var x={};l(x,s,(function(){return this}));var b=Object.getPrototypeOf,L=b&&b(b(G([])));L&&L!==n&&o.call(L,s)&&(x=L);var E=w.prototype=g.prototype=Object.create(x);function k(t){["next","throw","return"].forEach((function(e){l(t,e,(function(t){return this._invoke(e,t)}))}))}function j(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===d)throw new Error("Generator is already running");if(o===v){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=v,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=d;var c=f(e,r,n);if("normal"===c.type){if(o=n.done?v:"suspendedYield",c.arg===y)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(o=v,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 N(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function P(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(T,this),this.reset(!0)}function G(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}},k(j.prototype),l(j.prototype,u,(function(){return this})),e.AsyncIterator=j,e.async=function(t,r,n,o,a){void 0===a&&(a=Promise);var i=new j(h(t,r,n,o),a);return e.isGeneratorFunction(r)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},k(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=G,P.prototype={constructor:P,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(N),!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),N(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;N(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:G(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)}))}}function a(t){return"https://"+t.domainName+".dauth.ovh/api/v1"}var i=require("node-fetch");function s(){return(s=o(r().mark((function t(e,n){var o,s;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,i(a({domainName:n})+"/t-get-user/"+n,o);case 3:return s=t.sent,t.next=6,s.json();case 6:return t.abrupt("return",{response:s,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 i=t.headers.authorization.replace(/['"]+/g,"");try{if(console.log({token:i,tsk:n}),!e.verify(i,n))return;(function(t,e){return s.apply(this,arguments)})(i,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",error:t})}))}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 backendo middleware is not valid"}):o.status(401).send({status:"token-invalid",message:null!=(u=null==t?void 0:t.message)?u:"Token invalid"})}}};
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:{},u=i.iterator||"@@iterator",s=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 P(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",d="executing",v="completed",y={};function g(){}function m(){}function w(){}var x={};l(x,u,(function(){return this}));var b=Object.getPrototypeOf,L=b&&b(b(G([])));L&&L!==n&&o.call(L,u)&&(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,u){var s=f(t[n],t,a);if("throw"!==s.type){var c=s.arg,l=c.value;return l&&"object"==typeof l&&o.call(l,"__await")?e.resolve(l.__await).then((function(t){r("next",t,i,u)}),(function(t){r("throw",t,i,u)})):e.resolve(l).then((function(t){c.value=t,i(c)}),(function(t){return r("throw",t,i,u)}))}u(s.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===d)throw new Error("Generator is already running");if(o===v){if("throw"===a)throw i;return{value:t,done:!0}}for(n.method=a,n.arg=i;;){var u=n.delegate;if(u){var s=O(u,n);if(s){if(s===y)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=v,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=d;var c=f(e,r,n);if("normal"===c.type){if(o=n.done?v:"suspendedYield",c.arg===y)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(o=v,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 N(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function P(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(T,this),this.reset(!0)}function G(e){if(e||""===e){var r=e[u];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,s,(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,u,(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=G,P.prototype={constructor:P,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(N),!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 u.type="throw",u.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],u=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var s=o.call(i,"catchLoc"),c=o.call(i,"finallyLoc");if(s&&c){if(this.prev<i.catchLoc)return n(i.catchLoc,!0);if(this.prev<i.finallyLoc)return n(i.finallyLoc)}else if(s){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),N(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;N(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:G(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y}},e}function n(t,e,r,n,o,a,i){try{var u=t[a](i),s=u.value}catch(t){return void r(t)}u.done?e(s):Promise.resolve(s).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 u(t){n(i,o,a,u,s,"next",t)}function s(t){n(i,o,a,u,s,"throw",t)}u(void 0)}))}}function a(t){return"https://"+t.domainName+".dauth.ovh/api/v1"}var i=require("node-fetch");function u(){return(u=o(r().mark((function t(e,n){var o,u;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,i(a({domainName:n})+"/t-get-user/"+n,o);case 3:return u=t.sent,t.next=6,u.json();case 6:return t.abrupt("return",{response:u,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 i=t.headers.authorization.replace(/['"]+/g,"");try{return e.verify(i,n),function(t,e){return u.apply(this,arguments)}(i,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 s,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!=(s=null==t?void 0:t.message)?s:"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/utils/config.ts","../src/api/dauth.api.ts","../src/index.ts"],"sourcesContent":["const isLocalhost = process.env.NODE_ENV === 'development';\nexport const apiVersion = 'v1';\nexport const serverDomain = 'dauth.ovh';\n\nexport function getServerBasePath({ domainName }: { domainName: string }) {\n const serverPort = 4012;\n const serverLocalUrl = `http://localhost:${serverPort}/api/${apiVersion}`;\n const serverProdUrl = `https://${domainName}.${serverDomain}/api/${apiVersion}`;\n const serverBasePath = isLocalhost ? serverLocalUrl : serverProdUrl;\n return serverBasePath;\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({ domainName })}/t-get-user/${domainName}`,\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\ninterface ITenantUser {\n _id: string;\n dauthLicense?: string;\n sid: string;\n name: string;\n lastname: string;\n nickname: string;\n email: string;\n is_verified: boolean;\n language: string;\n avatar: {\n id: string;\n url: string;\n };\n role: string;\n tel_prefix: string;\n tel_suffix: string;\n createdAt: Date;\n updatedAt: Date;\n last_login: Date;\n __v: string | any;\n}\n\ninterface IRequestUser extends Request {\n user: ITenantUser;\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: IRequestUser,\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 console.log({ token, tsk });\n const verify = jwt.verify(token, tsk as string);\n if (!verify) return;\n 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 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 backendo 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":["getServerBasePath","_ref","domainName","fetch","require","_getUser","_asyncToGenerator","_regeneratorRuntime","mark","_callee","token","params","response","wrap","_context","prev","next","method","headers","Authorization","Content-Type","sent","json","abrupt","data","stop","apply","arguments","tsk","req","res","authorization","status","send","message","replace","console","log","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":"w0NAIgBA,EAAiBC,GAK/B,iBAL4CA,EAAVC,+BCHpC,IAAMC,EAAQC,QAAQ,cAgBrB,SAAAC,IAAA,OAAAA,EAAAC,EAAAC,IAAAC,MAdM,SAAAC,EAAuBC,EAAeR,GAAkB,IAAAS,EAAAC,EAAA,OAAAL,IAAAM,eAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAO5D,OANKL,EAAS,CACbM,OAAQ,MACRC,QAAS,CACPC,cAAeT,EACfU,eAAgB,qBAEnBN,EAAAE,OACsBb,EAClBH,EAAkB,CAAEE,WAAAA,mBAA4BA,EACnDS,GACD,OAHa,OAARC,EAAQE,EAAAO,KAAAP,EAAAE,OAIKJ,EAASU,OAAM,OAAxB,OAAAR,EAAAS,gBACH,CAAEX,SAAAA,EAAUY,KADTV,EAAAO,OACe,OAAA,UAAA,OAAAP,EAAAW,UAAAhB,QAC1BiB,WAAAC,yBC+BoB,SAAH1B,OAChBC,EAAUD,EAAVC,WACA0B,EAAG3B,EAAH2B,IAKA,OAAO,SACLC,EACAC,EACAd,GAEA,IAAKa,EAAIX,QAAQa,cACf,OAAOD,EACJE,OAAO,KACPC,KAAK,CAAED,OAAQ,kBAAmBE,QAAS,oBAEhD,IAAMxB,EAAQmB,EAAIX,QAAQa,cAAcI,QAAQ,SAAU,IAC1D,IAGE,GAFAC,QAAQC,IAAI,CAAE3B,MAAAA,EAAOkB,IAAAA,KACNU,EAAIC,OAAO7B,EAAOkB,GACpB,iBDlEUY,EAAAC,GAAA,OAAApC,EAAAqB,WAAAC,YCmEvBe,CAAQhC,EAAOR,GACZyC,MAAK,SAACC,GACqC,IAAAC,EAKOC,EAQ1CC,EAbP,OAAqC,MAAjCH,EAAahC,SAASoB,OACjBF,EAAIE,OAAO,KAAKC,KAAK,CAC1BD,OAAQ,iBACRE,eAAOW,EAAED,EAAapB,KAAKU,SAAOW,EAAI,wBAEE,MAAjCD,EAAahC,SAASoB,OACxBF,EAAIE,OAAO,KAAKC,KAAK,CAC1BD,OAAQ,QACRE,eAAOY,EAAEF,EAAapB,KAAKU,SAAOY,EAAI,uBAEE,MAAjCF,EAAahC,SAASoB,QAC/BH,EAAImB,KAAOJ,EAAapB,KAAKwB,KACtBhC,KAEAc,EAAIE,OAAO,KAAKC,KAAK,CAC1BD,OAAQ,gBACRE,eAAOa,EAAEH,EAAapB,KAAKU,SAAOa,EAAI,iCAIrC,SAACE,SACN,OAAOnB,EAAIE,OAAO,KAAKC,KAAK,CAC1BD,OAAQ,eACRE,eAAOgB,EAAED,EAAMf,SAAOgB,EAAI,qBAC1BD,MAAAA,OAGN,MAAOA,GAAO,IAAAE,EACiCC,EAA/C,OAAIH,GAA4B,uBAAnBA,SAAAA,EAAOf,SACXJ,EAAIE,OAAO,KAAKC,KAAK,CAC1BD,OAAQ,gBACRE,eAAOkB,QAAEH,SAAAA,EAAOf,SAAOkB,EAAI,kBAG3BH,GAA4B,6BAAnBA,SAAAA,EAAOf,SACXJ,EAAIE,OAAO,KAAKC,KAAK,CAC1BD,OAAQ,kBACRE,QAAS,6DAGNJ,EAAIE,OAAO,KAAKC,KAAK,CAC1BD,OAAQ,gBACRE,eAAOiB,QAAEF,SAAAA,EAAOf,SAAOiB,EAAI"}
1
+ {"version":3,"file":"dauth-md-node.cjs.production.min.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({ domainName }: { domainName: string }) {\n const isLocalhost = process.env.NODE_ENV === 'development';\n const serverPort = 4012;\n const serverLocalUrl = `http://localhost:${serverPort}/api/${apiVersion}`;\n const serverProdUrl = `https://${domainName}.${serverDomain}/api/${apiVersion}`;\n const serverBasePath = isLocalhost ? serverLocalUrl : serverProdUrl;\n return serverBasePath;\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({ domainName })}/t-get-user/${domainName}`,\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\ninterface ITenantUser {\n _id: string;\n dauthLicense?: string;\n sid: string;\n name: string;\n lastname: string;\n nickname: string;\n email: string;\n is_verified: boolean;\n language: string;\n avatar: {\n id: string;\n url: string;\n };\n role: string;\n tel_prefix: string;\n tel_suffix: string;\n createdAt: Date;\n updatedAt: Date;\n last_login: Date;\n __v: string | any;\n}\n\ninterface IRequestUser extends Request {\n user: ITenantUser;\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: IRequestUser,\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":["getServerBasePath","_ref","domainName","fetch","require","_getUser","_asyncToGenerator","_regeneratorRuntime","mark","_callee","token","params","response","wrap","_context","prev","next","method","headers","Authorization","Content-Type","sent","json","abrupt","data","stop","apply","arguments","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":"w0NAGgBA,EAAiBC,GAM/B,iBAN4CA,EAAVC,+BCFpC,IAAMC,EAAQC,QAAQ,cAgBrB,SAAAC,IAAA,OAAAA,EAAAC,EAAAC,IAAAC,MAdM,SAAAC,EAAuBC,EAAeR,GAAkB,IAAAS,EAAAC,EAAA,OAAAL,IAAAM,eAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAO5D,OANKL,EAAS,CACbM,OAAQ,MACRC,QAAS,CACPC,cAAeT,EACfU,eAAgB,qBAEnBN,EAAAE,OACsBb,EAClBH,EAAkB,CAAEE,WAAAA,mBAA4BA,EACnDS,GACD,OAHa,OAARC,EAAQE,EAAAO,KAAAP,EAAAE,OAIKJ,EAASU,OAAM,OAAxB,OAAAR,EAAAS,gBACH,CAAEX,SAAAA,EAAUY,KADTV,EAAAO,OACe,OAAA,UAAA,OAAAP,EAAAW,UAAAhB,QAC1BiB,WAAAC,yBC+BoB,SAAH1B,OAChBC,EAAUD,EAAVC,WACA0B,EAAG3B,EAAH2B,IAKA,OAAO,SACLC,EACAC,EACAd,GAEA,IAAKa,EAAIX,QAAQa,cACf,OAAOD,EACJE,OAAO,KACPC,KAAK,CAAED,OAAQ,kBAAmBE,QAAS,oBAEhD,IAAMxB,EAAQmB,EAAIX,QAAQa,cAAcI,QAAQ,SAAU,IAC1D,IAEE,OADAC,EAAIC,OAAO3B,EAAOkB,YDhEKU,EAAAC,GAAA,OAAAlC,EAAAqB,WAAAC,WCiEhBa,CAAQ9B,EAAOR,GACnBuC,MAAK,SAACC,GACqC,IAAAC,EAKOC,EAQ1CC,EAbP,OAAqC,MAAjCH,EAAa9B,SAASoB,OACjBF,EAAIE,OAAO,KAAKC,KAAK,CAC1BD,OAAQ,iBACRE,eAAOS,EAAED,EAAalB,KAAKU,SAAOS,EAAI,wBAEE,MAAjCD,EAAa9B,SAASoB,OACxBF,EAAIE,OAAO,KAAKC,KAAK,CAC1BD,OAAQ,QACRE,eAAOU,EAAEF,EAAalB,KAAKU,SAAOU,EAAI,uBAEE,MAAjCF,EAAa9B,SAASoB,QAC/BH,EAAIiB,KAAOJ,EAAalB,KAAKsB,KACtB9B,KAEAc,EAAIE,OAAO,KAAKC,KAAK,CAC1BD,OAAQ,gBACRE,eAAOW,EAAEH,EAAalB,KAAKU,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"}
@@ -332,11 +332,11 @@ function _asyncToGenerator(fn) {
332
332
  };
333
333
  }
334
334
 
335
- var isLocalhost = process.env.NODE_ENV === 'development';
336
335
  var apiVersion = 'v1';
337
336
  var serverDomain = 'dauth.ovh';
338
337
  function getServerBasePath(_ref) {
339
338
  var domainName = _ref.domainName;
339
+ var isLocalhost = process.env.NODE_ENV === 'development';
340
340
  var serverPort = 4012;
341
341
  var serverLocalUrl = "http://localhost:" + serverPort + "/api/" + apiVersion;
342
342
  var serverProdUrl = "https://" + domainName + "." + serverDomain + "/api/" + apiVersion;
@@ -396,13 +396,8 @@ var dauth = function dauth(_ref) {
396
396
  }
397
397
  var token = req.headers.authorization.replace(/['"]+/g, '');
398
398
  try {
399
- console.log({
400
- token: token,
401
- tsk: tsk
402
- });
403
- var verify = jwt.verify(token, tsk);
404
- if (!verify) return;
405
- getUser(token, domainName).then(function (getUserFetch) {
399
+ jwt.verify(token, tsk);
400
+ return getUser(token, domainName).then(function (getUserFetch) {
406
401
  if (getUserFetch.response.status === 404) {
407
402
  var _getUserFetch$data$me;
408
403
  return res.status(404).send({
@@ -429,8 +424,7 @@ var dauth = function dauth(_ref) {
429
424
  var _error$message;
430
425
  return res.status(500).send({
431
426
  status: 'server-error',
432
- message: (_error$message = error.message) != null ? _error$message : 'Dauth server error',
433
- error: error
427
+ message: (_error$message = error.message) != null ? _error$message : 'Dauth server error'
434
428
  });
435
429
  });
436
430
  } catch (error) {
@@ -445,7 +439,7 @@ var dauth = function dauth(_ref) {
445
439
  if (error && (error == null ? void 0 : error.message) === 'invalid signature') {
446
440
  return res.status(401).send({
447
441
  status: 'tsk-not-invalid',
448
- message: 'The TSK variable in the backendo middleware is not valid'
442
+ message: 'The TSK variable in the backend middleware is not valid'
449
443
  });
450
444
  }
451
445
  return res.status(401).send({
@@ -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":["const isLocalhost = process.env.NODE_ENV === 'development';\nexport const apiVersion = 'v1';\nexport const serverDomain = 'dauth.ovh';\n\nexport function getServerBasePath({ domainName }: { domainName: string }) {\n const serverPort = 4012;\n const serverLocalUrl = `http://localhost:${serverPort}/api/${apiVersion}`;\n const serverProdUrl = `https://${domainName}.${serverDomain}/api/${apiVersion}`;\n const serverBasePath = isLocalhost ? serverLocalUrl : serverProdUrl;\n return serverBasePath;\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({ domainName })}/t-get-user/${domainName}`,\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\ninterface ITenantUser {\n _id: string;\n dauthLicense?: string;\n sid: string;\n name: string;\n lastname: string;\n nickname: string;\n email: string;\n is_verified: boolean;\n language: string;\n avatar: {\n id: string;\n url: string;\n };\n role: string;\n tel_prefix: string;\n tel_suffix: string;\n createdAt: Date;\n updatedAt: Date;\n last_login: Date;\n __v: string | any;\n}\n\ninterface IRequestUser extends Request {\n user: ITenantUser;\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: IRequestUser,\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 console.log({ token, tsk });\n const verify = jwt.verify(token, tsk as string);\n if (!verify) return;\n 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 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 backendo 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":["isLocalhost","process","env","NODE_ENV","apiVersion","serverDomain","getServerBasePath","_ref","domainName","serverPort","serverLocalUrl","serverProdUrl","serverBasePath","fetch","require","getUser","_x","_x2","_getUser","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","token","params","response","data","wrap","_callee$","_context","prev","next","method","headers","Authorization","sent","json","abrupt","stop","dauth","tsk","req","res","authorization","status","send","message","replace","console","log","verify","jwt","then","getUserFetch","_getUserFetch$data$me","_getUserFetch$data$me2","user","_getUserFetch$data$me3","error","_error$message","_error$message3","_error$message2"],"mappings":"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"}
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({ domainName }: { domainName: string }) {\n const isLocalhost = process.env.NODE_ENV === 'development';\n const serverPort = 4012;\n const serverLocalUrl = `http://localhost:${serverPort}/api/${apiVersion}`;\n const serverProdUrl = `https://${domainName}.${serverDomain}/api/${apiVersion}`;\n const serverBasePath = isLocalhost ? serverLocalUrl : serverProdUrl;\n return serverBasePath;\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({ domainName })}/t-get-user/${domainName}`,\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\ninterface ITenantUser {\n _id: string;\n dauthLicense?: string;\n sid: string;\n name: string;\n lastname: string;\n nickname: string;\n email: string;\n is_verified: boolean;\n language: string;\n avatar: {\n id: string;\n url: string;\n };\n role: string;\n tel_prefix: string;\n tel_suffix: string;\n createdAt: Date;\n updatedAt: Date;\n last_login: Date;\n __v: string | any;\n}\n\ninterface IRequestUser extends Request {\n user: ITenantUser;\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: IRequestUser,\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","_ref","domainName","isLocalhost","process","env","NODE_ENV","serverPort","serverLocalUrl","serverProdUrl","serverBasePath","fetch","require","getUser","_x","_x2","_getUser","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","token","params","response","data","wrap","_callee$","_context","prev","next","method","headers","Authorization","sent","json","abrupt","stop","dauth","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/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.2.14",
2
+ "version": "0.2.16",
3
3
  "license": "MIT",
4
4
  "main": "dist/index.js",
5
5
  "typings": "dist/index.d.ts",
@@ -15,6 +15,7 @@
15
15
  "build": "tsdx build",
16
16
  "test": "tsdx test",
17
17
  "lint": "tsdx lint",
18
+ "format": "prettier --write \"src/**/*.{ts,tsx,js,jsx,json,md}\"",
18
19
  "prepare": "tsdx build",
19
20
  "size": "size-limit",
20
21
  "analyze": "size-limit --why"
@@ -57,7 +58,6 @@
57
58
  "dependencies": {
58
59
  "express": "^4.18.2",
59
60
  "jsonwebtoken": "^9.0.2",
60
- "mongoose": "^8.1.2",
61
61
  "node-fetch": "^2.6.1"
62
62
  }
63
63
  }
@@ -1,8 +1,8 @@
1
- const isLocalhost = process.env.NODE_ENV === 'development';
2
1
  export const apiVersion = 'v1';
3
2
  export const serverDomain = 'dauth.ovh';
4
3
 
5
4
  export function getServerBasePath({ domainName }: { domainName: string }) {
5
+ const isLocalhost = process.env.NODE_ENV === 'development';
6
6
  const serverPort = 4012;
7
7
  const serverLocalUrl = `http://localhost:${serverPort}/api/${apiVersion}`;
8
8
  const serverProdUrl = `https://${domainName}.${serverDomain}/api/${apiVersion}`;
package/src/index.ts CHANGED
@@ -65,10 +65,8 @@ export const dauth = ({
65
65
  }
66
66
  const token = req.headers.authorization.replace(/['"]+/g, '');
67
67
  try {
68
- console.log({ token, tsk });
69
- const verify = jwt.verify(token, tsk as string);
70
- if (!verify) return;
71
- getUser(token, domainName)
68
+ jwt.verify(token, tsk as string);
69
+ return getUser(token, domainName)
72
70
  .then((getUserFetch: any) => {
73
71
  if (getUserFetch.response.status === 404) {
74
72
  return res.status(404).send({
@@ -94,7 +92,6 @@ export const dauth = ({
94
92
  return res.status(500).send({
95
93
  status: 'server-error',
96
94
  message: error.message ?? 'Dauth server error',
97
- error,
98
95
  });
99
96
  });
100
97
  } catch (error) {
@@ -107,7 +104,7 @@ export const dauth = ({
107
104
  if (error && error?.message === 'invalid signature') {
108
105
  return res.status(401).send({
109
106
  status: 'tsk-not-invalid',
110
- message: 'The TSK variable in the backendo middleware is not valid',
107
+ message: 'The TSK variable in the backend middleware is not valid',
111
108
  });
112
109
  }
113
110
  return res.status(401).send({