dauth-md-node 0.2.15 → 0.2.17
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 +165 -64
- package/dist/dauth-md-node.cjs.development.js +3 -5
- 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 -6
- package/dist/dauth-md-node.esm.js.map +1 -1
- package/package.json +2 -2
- package/src/api/utils/config.ts +1 -1
- package/src/index.ts +2 -4
package/README.md
CHANGED
|
@@ -1,103 +1,204 @@
|
|
|
1
|
-
#
|
|
1
|
+
# dauth-md-node
|
|
2
2
|
|
|
3
|
-
|
|
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
|
-
|
|
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
|
|
8
|
+
npm install dauth-md-node
|
|
9
|
+
# or
|
|
10
|
+
yarn add dauth-md-node
|
|
17
11
|
```
|
|
18
12
|
|
|
19
|
-
|
|
13
|
+
## Quick Start
|
|
20
14
|
|
|
21
|
-
|
|
15
|
+
```typescript
|
|
16
|
+
import express from 'express';
|
|
17
|
+
import { dauth } from 'dauth-md-node';
|
|
22
18
|
|
|
23
|
-
|
|
19
|
+
const app = express();
|
|
24
20
|
|
|
25
|
-
|
|
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
|
-
|
|
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
|
-
|
|
32
|
+
app.listen(4000);
|
|
33
|
+
```
|
|
30
34
|
|
|
31
|
-
|
|
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
|
-
|
|
90
|
+
## Real-World Integration Example
|
|
34
91
|
|
|
35
|
-
|
|
92
|
+
This is the pattern used in `easymediacloud-backend-node`, which delegates all user authentication to dauth.
|
|
36
93
|
|
|
37
|
-
|
|
94
|
+
### 1. Initialize the middleware from environment variables
|
|
38
95
|
|
|
39
|
-
|
|
96
|
+
```typescript
|
|
97
|
+
// src/middlewares/auth.middleware.ts
|
|
98
|
+
import { dauth } from 'dauth-md-node';
|
|
99
|
+
import config from '../config/config';
|
|
40
100
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
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
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
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
|
-
|
|
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
|
-
###
|
|
139
|
+
### 3. Apply middleware chains to routes
|
|
63
140
|
|
|
64
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
155
|
+
export default licenseApi;
|
|
156
|
+
```
|
|
72
157
|
|
|
73
|
-
|
|
74
|
-
// ./types/index.d.ts
|
|
75
|
-
declare var __DEV__: boolean;
|
|
158
|
+
### 4. Access the user in controllers
|
|
76
159
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
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
|
-
|
|
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
|
-
##
|
|
174
|
+
## Development
|
|
86
175
|
|
|
87
|
-
|
|
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
|
-
|
|
185
|
+
### Bundle Outputs
|
|
90
186
|
|
|
91
|
-
|
|
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
|
-
|
|
191
|
+
## Dependencies
|
|
94
192
|
|
|
95
|
-
|
|
193
|
+
- `express` >= 4
|
|
194
|
+
- `jsonwebtoken` >= 9
|
|
195
|
+
- `mongoose` >= 8
|
|
196
|
+
- `node-fetch` ^2.6
|
|
96
197
|
|
|
97
|
-
|
|
198
|
+
## Author
|
|
98
199
|
|
|
99
|
-
|
|
200
|
+
David T. Pizarro Frick
|
|
100
201
|
|
|
101
|
-
##
|
|
202
|
+
## License
|
|
102
203
|
|
|
103
|
-
|
|
204
|
+
MIT
|
|
@@ -396,9 +396,8 @@ var dauth = function dauth(_ref) {
|
|
|
396
396
|
}
|
|
397
397
|
var token = req.headers.authorization.replace(/['"]+/g, '');
|
|
398
398
|
try {
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
getUser(token, domainName).then(function (getUserFetch) {
|
|
399
|
+
jwt.verify(token, tsk);
|
|
400
|
+
return getUser(token, domainName).then(function (getUserFetch) {
|
|
402
401
|
if (getUserFetch.response.status === 404) {
|
|
403
402
|
var _getUserFetch$data$me;
|
|
404
403
|
return res.status(404).send({
|
|
@@ -425,8 +424,7 @@ var dauth = function dauth(_ref) {
|
|
|
425
424
|
var _error$message;
|
|
426
425
|
return res.status(500).send({
|
|
427
426
|
status: 'server-error',
|
|
428
|
-
message: (_error$message = error.message) != null ? _error$message : 'Dauth server error'
|
|
429
|
-
error: error
|
|
427
|
+
message: (_error$message = error.message) != null ? _error$message : 'Dauth server error'
|
|
430
428
|
});
|
|
431
429
|
});
|
|
432
430
|
} catch (error) {
|
|
@@ -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":["
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAO,IAAMA,UAAU,GAAG,IAAI;SAGdC,iBAAiBA,CAAAC,IAAA;EAE/B,IAAMC,UAAU,GAAG,IAAI;EACvB,IAAMC,cAAc,yBAAuBD,UAAU,aAAQH,UAAY;EAEzE,IAAMK,cAAc,IAAiBD,cAAc,CAAgB;EACnE,OAAOC,cAAc;AACvB;;ACTA,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,CACvBL,iBAAiB,CAAC,AAAc,CAAC,oBAAekB,UAAU,EAC7DC,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;;IC+BYsB,KAAK,GAAG,SAARA,KAAKA,CAAAjC,IAAA;MAChBiB,UAAU,GAAAjB,IAAA,CAAViB,UAAU;IACViB,GAAG,GAAAlC,IAAA,CAAHkC,GAAG;EAKH,OAAO,UACLC,GAAiB,EACjBC,GAAoB,EACpBX,IAAkB;IAElB,IAAI,CAACU,GAAG,CAACR,OAAO,CAACU,aAAa,EAAE;MAC9B,OAAOD,GAAG,CACPE,MAAM,CAAC,GAAG,CAAC,CACXC,IAAI,CAAC;QAAED,MAAM,EAAE,iBAAiB;QAAEE,OAAO,EAAE;OAAmB,CAAC;;IAEpE,IAAMxB,KAAK,GAAGmB,GAAG,CAACR,OAAO,CAACU,aAAa,CAACI,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;IAC7D,IAAI;MACFC,GAAG,CAACC,MAAM,CAAC3B,KAAK,EAAEkB,GAAa,CAAC;MAChC,OAAO5B,OAAO,CAACU,KAAK,EAAEC,UAAU,CAAC,CAC9B2B,IAAI,CAAC,UAACC,YAAiB;QACtB,IAAIA,YAAY,CAAC1B,QAAQ,CAACmB,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,CAACzB,IAAI,CAACoB,OAAO,YAAAM,qBAAA,GAAI;WACvC,CAAC;SACH,MAAM,IAAID,YAAY,CAAC1B,QAAQ,CAACmB,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,CAACzB,IAAI,CAACoB,OAAO,YAAAO,sBAAA,GAAI;WACvC,CAAC;SACH,MAAM,IAAIF,YAAY,CAAC1B,QAAQ,CAACmB,MAAM,KAAK,GAAG,EAAE;UAC/CH,GAAG,CAACa,IAAI,GAAGH,YAAY,CAACzB,IAAI,CAAC4B,IAAI;UACjC,OAAOvB,IAAI,EAAE;SACd,MAAM;UAAA,IAAAwB,sBAAA;UACL,OAAOb,GAAG,CAACE,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC;YAC1BD,MAAM,EAAE,eAAe;YACvBE,OAAO,GAAAS,sBAAA,GAAEJ,YAAY,CAACzB,IAAI,CAACoB,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:{},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{
|
|
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":["
|
|
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,9 +396,8 @@ var dauth = function dauth(_ref) {
|
|
|
396
396
|
}
|
|
397
397
|
var token = req.headers.authorization.replace(/['"]+/g, '');
|
|
398
398
|
try {
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
getUser(token, domainName).then(function (getUserFetch) {
|
|
399
|
+
jwt.verify(token, tsk);
|
|
400
|
+
return getUser(token, domainName).then(function (getUserFetch) {
|
|
402
401
|
if (getUserFetch.response.status === 404) {
|
|
403
402
|
var _getUserFetch$data$me;
|
|
404
403
|
return res.status(404).send({
|
|
@@ -425,8 +424,7 @@ var dauth = function dauth(_ref) {
|
|
|
425
424
|
var _error$message;
|
|
426
425
|
return res.status(500).send({
|
|
427
426
|
status: 'server-error',
|
|
428
|
-
message: (_error$message = error.message) != null ? _error$message : 'Dauth server error'
|
|
429
|
-
error: error
|
|
427
|
+
message: (_error$message = error.message) != null ? _error$message : 'Dauth server error'
|
|
430
428
|
});
|
|
431
429
|
});
|
|
432
430
|
} catch (error) {
|
|
@@ -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":["
|
|
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.
|
|
2
|
+
"version": "0.2.17",
|
|
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
|
}
|
package/src/api/utils/config.ts
CHANGED
|
@@ -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,9 +65,8 @@ export const dauth = ({
|
|
|
65
65
|
}
|
|
66
66
|
const token = req.headers.authorization.replace(/['"]+/g, '');
|
|
67
67
|
try {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
getUser(token, domainName)
|
|
68
|
+
jwt.verify(token, tsk as string);
|
|
69
|
+
return getUser(token, domainName)
|
|
71
70
|
.then((getUserFetch: any) => {
|
|
72
71
|
if (getUserFetch.response.status === 404) {
|
|
73
72
|
return res.status(404).send({
|
|
@@ -93,7 +92,6 @@ export const dauth = ({
|
|
|
93
92
|
return res.status(500).send({
|
|
94
93
|
status: 'server-error',
|
|
95
94
|
message: error.message ?? 'Dauth server error',
|
|
96
|
-
error,
|
|
97
95
|
});
|
|
98
96
|
});
|
|
99
97
|
} catch (error) {
|