@azteam/express 1.2.218 → 1.2.219
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/package.json +1 -1
- package/src/Server.js +0 -4
- package/src/middleware/authMiddleware.js +29 -24
- package/src/middleware/index.js +1 -0
package/package.json
CHANGED
package/src/Server.js
CHANGED
|
@@ -12,8 +12,6 @@ import _ from 'lodash';
|
|
|
12
12
|
import 'express-async-errors';
|
|
13
13
|
import {CORS, errorCatch, ErrorException, NOT_FOUND, UNKNOWN} from '@azteam/error';
|
|
14
14
|
|
|
15
|
-
import {authMiddleware} from './middleware/authMiddleware';
|
|
16
|
-
|
|
17
15
|
const RES_TYPE = {
|
|
18
16
|
ARRAY: 'ARRAY',
|
|
19
17
|
OBJECT: 'OBJECT',
|
|
@@ -273,8 +271,6 @@ class Server {
|
|
|
273
271
|
app.use(middleware);
|
|
274
272
|
});
|
|
275
273
|
|
|
276
|
-
app.use(authMiddleware);
|
|
277
|
-
|
|
278
274
|
const msg = [];
|
|
279
275
|
_.map(this.controllers, (data) => {
|
|
280
276
|
const {controller} = data;
|
|
@@ -11,37 +11,42 @@ function systemLogin(userData = null) {
|
|
|
11
11
|
return user;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
export function
|
|
15
|
-
|
|
14
|
+
export default function (cbLoginAPI) {
|
|
15
|
+
return async function (req, res, next) {
|
|
16
|
+
const {headers} = req;
|
|
16
17
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
if (headers['x-app-secret'] === process.env.SECRET_KEY) {
|
|
19
|
+
req.user = systemLogin(headers['x-app-user']);
|
|
20
|
+
} else {
|
|
21
|
+
let token = null;
|
|
21
22
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
if (headers.authorization) {
|
|
24
|
+
token = headers.authorization;
|
|
25
|
+
}
|
|
25
26
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
if (token) {
|
|
28
|
+
if (token.startsWith('Bearer ')) {
|
|
29
|
+
token = token.replace('Bearer ', '');
|
|
29
30
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
31
|
+
try {
|
|
32
|
+
req.user = jwt.verify(token, process.env.SECRET_KEY);
|
|
33
|
+
return next();
|
|
34
|
+
} catch (err) {
|
|
35
|
+
if (err.name === 'TokenExpiredError') {
|
|
36
|
+
throw new ErrorException(TOKEN_EXPIRED, err);
|
|
37
|
+
}
|
|
38
|
+
throw new ErrorException(TOKEN_FAILED, err);
|
|
36
39
|
}
|
|
37
|
-
|
|
40
|
+
} else {
|
|
41
|
+
const data = await cbLoginAPI(token);
|
|
42
|
+
if (data) {
|
|
43
|
+
req.user = data;
|
|
44
|
+
}
|
|
45
|
+
return next();
|
|
38
46
|
}
|
|
39
47
|
}
|
|
40
|
-
throw new ErrorException(TOKEN_FAILED, {
|
|
41
|
-
message: 'Token type invalid',
|
|
42
|
-
});
|
|
43
48
|
}
|
|
44
|
-
}
|
|
45
49
|
|
|
46
|
-
|
|
50
|
+
return next();
|
|
51
|
+
};
|
|
47
52
|
}
|
package/src/middleware/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export {default as signMiddleware} from './signMiddleware';
|
|
2
2
|
export {default as etagMiddleware} from './etagMiddleware';
|
|
3
|
+
export {default as authMiddleware} from './authMiddleware';
|
|
3
4
|
export {default as roleMiddleware} from './roleMiddleware';
|
|
4
5
|
export {default as adminRoleMiddleware} from './adminRoleMiddleware';
|
|
5
6
|
export {default as systemRoleMiddleware} from './systemRoleMiddleware';
|