@steedos/auth 2.2.52 → 2.2.53-beta.4
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/lib/apikey.js +95 -27
- package/lib/apikey.js.map +1 -1
- package/lib/auth-middleware.js +53 -10
- package/lib/auth-middleware.js.map +1 -1
- package/lib/endpoints/jwt.js +122 -61
- package/lib/endpoints/jwt.js.map +1 -1
- package/lib/endpoints/login.js +80 -32
- package/lib/endpoints/login.js.map +1 -1
- package/lib/endpoints/logout.js +44 -6
- package/lib/endpoints/logout.js.map +1 -1
- package/lib/endpoints/validate.js +78 -29
- package/lib/endpoints/validate.js.map +1 -1
- package/lib/express-middleware.js +6 -6
- package/lib/express-middleware.js.map +1 -1
- package/lib/index.js +10 -10
- package/lib/index.js.map +1 -1
- package/lib/session.js +198 -97
- package/lib/session.js.map +1 -1
- package/lib/spaceUserSession.js +330 -106
- package/lib/spaceUserSession.js.map +1 -1
- package/lib/tokenMap.js +84 -27
- package/lib/tokenMap.js.map +1 -1
- package/lib/userSession.js +111 -41
- package/lib/userSession.js.map +1 -1
- package/lib/utils/index.js +92 -35
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/random.js +4 -4
- package/lib/utils/random.js.map +1 -1
- package/package.json +5 -3
package/lib/apikey.js
CHANGED
|
@@ -1,40 +1,108 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (_) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
exports.__esModule = true;
|
|
3
39
|
exports.getAPIKeyAuthHeader = exports.getAPIKey = exports.verifyAPIKey = exports.isAPIKey = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
40
|
+
var objectql_1 = require("@steedos/objectql");
|
|
41
|
+
var HEADER_AUTH = 'Authorization';
|
|
42
|
+
var AUTH_TYPE = 'Bearer';
|
|
7
43
|
function isAPIKey(token) {
|
|
8
44
|
return token.startsWith('apikey,');
|
|
9
45
|
}
|
|
10
46
|
exports.isAPIKey = isAPIKey;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
47
|
+
function verifyAPIKey(token) {
|
|
48
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
49
|
+
var apikey, records, record;
|
|
50
|
+
return __generator(this, function (_a) {
|
|
51
|
+
switch (_a.label) {
|
|
52
|
+
case 0:
|
|
53
|
+
if (!isAPIKey(token)) return [3 /*break*/, 3];
|
|
54
|
+
apikey = token.replace('apikey,', '');
|
|
55
|
+
return [4 /*yield*/, (0, objectql_1.getObject)('api_keys').find({ filters: [['api_key', '=', apikey], ['active', '=', true]] })];
|
|
56
|
+
case 1:
|
|
57
|
+
records = _a.sent();
|
|
58
|
+
if (!(records.length > 0)) return [3 /*break*/, 3];
|
|
59
|
+
record = records[0];
|
|
60
|
+
return [4 /*yield*/, (0, objectql_1.getObject)('api_keys').update(record._id, { last_use_time: new Date() })];
|
|
61
|
+
case 2:
|
|
62
|
+
_a.sent();
|
|
63
|
+
return [2 /*return*/, { userId: record.owner, spaceId: record.space }];
|
|
64
|
+
case 3: return [2 /*return*/];
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
});
|
|
21
68
|
}
|
|
22
69
|
exports.verifyAPIKey = verifyAPIKey;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
return
|
|
27
|
-
|
|
70
|
+
function getAPIKey(spaceId) {
|
|
71
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
72
|
+
var space;
|
|
73
|
+
return __generator(this, function (_a) {
|
|
74
|
+
switch (_a.label) {
|
|
75
|
+
case 0: return [4 /*yield*/, (0, objectql_1.getObject)('spaces').findOne(spaceId, {})];
|
|
76
|
+
case 1:
|
|
77
|
+
space = _a.sent();
|
|
78
|
+
if (space) {
|
|
79
|
+
return [2 /*return*/, space.api_key];
|
|
80
|
+
}
|
|
81
|
+
return [2 /*return*/];
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
});
|
|
28
85
|
}
|
|
29
86
|
exports.getAPIKey = getAPIKey;
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
87
|
+
function getAPIKeyAuthHeader(spaceId) {
|
|
88
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
89
|
+
var api_key;
|
|
90
|
+
var _a;
|
|
91
|
+
return __generator(this, function (_b) {
|
|
92
|
+
switch (_b.label) {
|
|
93
|
+
case 0: return [4 /*yield*/, getAPIKey(spaceId)];
|
|
94
|
+
case 1:
|
|
95
|
+
api_key = _b.sent();
|
|
96
|
+
if (!api_key) {
|
|
97
|
+
throw new objectql_1.SteedosError('space_apikey_notfind');
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
return [2 /*return*/, (_a = {}, _a[HEADER_AUTH] = "".concat(AUTH_TYPE, " apikey,").concat(api_key), _a)];
|
|
101
|
+
}
|
|
102
|
+
return [2 /*return*/];
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
});
|
|
38
106
|
}
|
|
39
107
|
exports.getAPIKeyAuthHeader = getAPIKeyAuthHeader;
|
|
40
108
|
//# sourceMappingURL=apikey.js.map
|
package/lib/apikey.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apikey.js","sourceRoot":"","sources":["../src/apikey.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"apikey.js","sourceRoot":"","sources":["../src/apikey.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAA4D;AAE5D,IAAM,WAAW,GAAG,eAAe,CAAC;AACpC,IAAM,SAAS,GAAG,QAAQ,CAAC;AAE3B,SAAgB,QAAQ,CAAC,KAAK;IAC1B,OAAO,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;AACtC,CAAC;AAFD,4BAEC;AAED,SAAsB,YAAY,CAAC,KAAK;;;;;;yBAChC,QAAQ,CAAC,KAAK,CAAC,EAAf,wBAAe;oBACT,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;oBAC5B,qBAAM,IAAA,oBAAS,EAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAA;;oBAA1G,OAAO,GAAG,SAAgG;yBAC5G,CAAA,OAAO,CAAC,MAAM,GAAG,CAAC,CAAA,EAAlB,wBAAkB;oBACZ,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;oBAC1B,qBAAM,IAAA,oBAAS,EAAC,UAAU,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,EAAA;;oBAA7E,SAA6E,CAAC;oBAC9E,sBAAO,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,EAAC;;;;;CAGlE;AAVD,oCAUC;AAED,SAAsB,SAAS,CAAC,OAAO;;;;;wBACrB,qBAAM,IAAA,oBAAS,EAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,EAAA;;oBAAtD,KAAK,GAAG,SAA8C;oBAC5D,IAAI,KAAK,EAAE;wBACP,sBAAO,KAAK,CAAC,OAAO,EAAC;qBACxB;;;;;CACJ;AALD,8BAKC;AAED,SAAsB,mBAAmB,CAAC,OAAO;;;;;;wBAC7B,qBAAM,SAAS,CAAC,OAAO,CAAC,EAAA;;oBAAlC,OAAO,GAAG,SAAwB;oBACxC,IAAI,CAAC,OAAO,EAAE;wBACV,MAAM,IAAI,uBAAY,CAAC,sBAAsB,CAAC,CAAC;qBAClD;yBAAI;wBACD,gCAAQ,GAAC,WAAW,IAAG,UAAG,SAAS,qBAAW,OAAO,CAAE,OAAE;qBAC5D;;;;;CACJ;AAPD,kDAOC"}
|
package/lib/auth-middleware.js
CHANGED
|
@@ -1,16 +1,59 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (_) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
exports.__esModule = true;
|
|
3
39
|
exports.requireAuthentication = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
40
|
+
var session_1 = require("./session");
|
|
41
|
+
var requireAuthentication = function (req, res, next) { return __awaiter(void 0, void 0, void 0, function () {
|
|
42
|
+
return __generator(this, function (_a) {
|
|
43
|
+
switch (_a.label) {
|
|
44
|
+
case 0: return [4 /*yield*/, (0, session_1.setRequestUser)(req, res, function () {
|
|
45
|
+
if (req.user) {
|
|
46
|
+
next();
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
res.status(401).send({ status: 'error', message: 'You must be logged in to do this.' });
|
|
50
|
+
}
|
|
51
|
+
})];
|
|
52
|
+
case 1:
|
|
53
|
+
_a.sent();
|
|
54
|
+
return [2 /*return*/];
|
|
12
55
|
}
|
|
13
56
|
});
|
|
14
|
-
};
|
|
57
|
+
}); };
|
|
15
58
|
exports.requireAuthentication = requireAuthentication;
|
|
16
59
|
//# sourceMappingURL=auth-middleware.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-middleware.js","sourceRoot":"","sources":["../src/auth-middleware.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth-middleware.js","sourceRoot":"","sources":["../src/auth-middleware.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAA2C;AAOpC,IAAM,qBAAqB,GAAG,UAAO,GAAY,EAAE,GAAa,EAAE,IAAgB;;;oBACrF,qBAAM,IAAA,wBAAc,EAAC,GAAG,EAAE,GAAG,EAAE;oBAC3B,IAAI,GAAG,CAAC,IAAI,EAAE;wBACV,IAAI,EAAE,CAAC;qBACV;yBACI;wBACD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,mCAAmC,EAAE,CAAC,CAAC;qBAC3F;gBACL,CAAC,CAAC,EAAA;;gBAPF,SAOE,CAAC;;;;KAEN,CAAA;AAVY,QAAA,qBAAqB,yBAUjC"}
|
package/lib/endpoints/jwt.js
CHANGED
|
@@ -1,8 +1,44 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (_) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
exports.__esModule = true;
|
|
3
39
|
exports.jwtSSO = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
40
|
+
var utils_1 = require("../utils");
|
|
41
|
+
var objectql_1 = require("@steedos/objectql");
|
|
6
42
|
// function secretCallback(req, payload, done) {
|
|
7
43
|
// let issuer = payload.iss
|
|
8
44
|
// let collection = getSteedosSchema().getObject('OAuth2Clients')
|
|
@@ -14,65 +50,90 @@ const objectql_1 = require("@steedos/objectql");
|
|
|
14
50
|
// done(reject, '')
|
|
15
51
|
// })
|
|
16
52
|
// }
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
53
|
+
function getTokenInfo(req) {
|
|
54
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
55
|
+
var payload, data, userObj, user, userId, authToken, hashedToken, filters, stampedToken, hashedTokenObj;
|
|
56
|
+
return __generator(this, function (_a) {
|
|
57
|
+
switch (_a.label) {
|
|
58
|
+
case 0:
|
|
59
|
+
payload = req.user;
|
|
60
|
+
data = { userId: '', authToken: '' };
|
|
61
|
+
userObj = (0, objectql_1.getSteedosSchema)().getObject('users');
|
|
62
|
+
return [4 /*yield*/, userObj.find({ filters: "username eq '".concat(payload.username, "'"), fields: ['_id'] })];
|
|
63
|
+
case 1:
|
|
64
|
+
user = (_a.sent())[0];
|
|
65
|
+
if (!user) return [3 /*break*/, 5];
|
|
66
|
+
userId = user._id;
|
|
67
|
+
authToken = payload.sessionId ? "".concat(payload.iss, "-").concat(payload.username, "-").concat(payload.sessionId) : "".concat(payload.iss, "-").concat(payload.username);
|
|
68
|
+
hashedToken = (0, utils_1.hashLoginToken)(authToken).replace(/\//g, '%2F');
|
|
69
|
+
filters = "(services/resume/loginTokens/hashedToken eq '".concat(hashedToken, "')");
|
|
70
|
+
return [4 /*yield*/, userObj.count({ filters: filters })];
|
|
71
|
+
case 2:
|
|
72
|
+
if (!_a.sent()) return [3 /*break*/, 3];
|
|
73
|
+
data = { userId: userId, authToken: authToken };
|
|
74
|
+
return [3 /*break*/, 5];
|
|
75
|
+
case 3:
|
|
76
|
+
stampedToken = {
|
|
77
|
+
token: authToken,
|
|
78
|
+
when: new Date
|
|
79
|
+
};
|
|
80
|
+
hashedTokenObj = (0, utils_1.hashStampedToken)(stampedToken);
|
|
81
|
+
return [4 /*yield*/, (0, utils_1.insertHashedLoginToken)(userId, hashedTokenObj)];
|
|
82
|
+
case 4:
|
|
83
|
+
_a.sent();
|
|
84
|
+
data = { userId: userId, authToken: authToken };
|
|
85
|
+
_a.label = 5;
|
|
86
|
+
case 5: return [2 /*return*/, data];
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
});
|
|
41
90
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
91
|
+
var jwtSSO = function (req, res) { return __awaiter(void 0, void 0, void 0, function () {
|
|
92
|
+
var jwt, token, decoded, payload, issuer, collection, clients, clientInfo, secret, spaceId, verifiedPayload, data, redirectUrl, error_1;
|
|
93
|
+
return __generator(this, function (_a) {
|
|
94
|
+
switch (_a.label) {
|
|
95
|
+
case 0:
|
|
96
|
+
_a.trys.push([0, 3, , 4]);
|
|
97
|
+
jwt = require('jsonwebtoken');
|
|
98
|
+
token = req.query.jwt_token;
|
|
99
|
+
if (!token) {
|
|
100
|
+
throw new Error('jwt_token is needed!');
|
|
101
|
+
}
|
|
102
|
+
decoded = jwt.decode(token, { complete: true });
|
|
103
|
+
payload = decoded.payload;
|
|
104
|
+
issuer = payload.iss;
|
|
105
|
+
if (!issuer) {
|
|
106
|
+
throw new Error('issuer is needed!');
|
|
107
|
+
}
|
|
108
|
+
collection = (0, objectql_1.getSteedosSchema)().getObject('OAuth2Clients');
|
|
109
|
+
return [4 /*yield*/, collection.find({ filters: "clientId eq '".concat(issuer, "'") })];
|
|
110
|
+
case 1:
|
|
111
|
+
clients = _a.sent();
|
|
112
|
+
clientInfo = clients[0];
|
|
113
|
+
secret = clientInfo ? clientInfo.clientSecret : '';
|
|
114
|
+
spaceId = clientInfo ? clientInfo.space : '';
|
|
115
|
+
if (!secret) {
|
|
116
|
+
throw new Error('secret is needed!');
|
|
117
|
+
}
|
|
118
|
+
if (!spaceId) {
|
|
119
|
+
throw new Error('spaceId is needed!');
|
|
120
|
+
}
|
|
121
|
+
verifiedPayload = jwt.verify(token, secret);
|
|
122
|
+
return [4 /*yield*/, getTokenInfo({ user: verifiedPayload })];
|
|
123
|
+
case 2:
|
|
124
|
+
data = _a.sent();
|
|
125
|
+
(0, utils_1.setAuthCookies)(req, res, data.userId, data.authToken, spaceId);
|
|
126
|
+
redirectUrl = verifiedPayload.redirect_url;
|
|
127
|
+
res.redirect(302, redirectUrl);
|
|
128
|
+
return [3 /*break*/, 4];
|
|
129
|
+
case 3:
|
|
130
|
+
error_1 = _a.sent();
|
|
131
|
+
console.error(error_1);
|
|
132
|
+
res.status(500).send(error_1.messenger);
|
|
133
|
+
return [3 /*break*/, 4];
|
|
134
|
+
case 4: return [2 /*return*/];
|
|
48
135
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
let issuer = payload.iss;
|
|
52
|
-
if (!issuer) {
|
|
53
|
-
throw new Error('issuer is needed!');
|
|
54
|
-
}
|
|
55
|
-
let collection = (0, objectql_1.getSteedosSchema)().getObject('OAuth2Clients');
|
|
56
|
-
let clients = await collection.find({ filters: `clientId eq '${issuer}'` });
|
|
57
|
-
let clientInfo = clients[0];
|
|
58
|
-
let secret = clientInfo ? clientInfo.clientSecret : '';
|
|
59
|
-
let spaceId = clientInfo ? clientInfo.space : '';
|
|
60
|
-
if (!secret) {
|
|
61
|
-
throw new Error('secret is needed!');
|
|
62
|
-
}
|
|
63
|
-
if (!spaceId) {
|
|
64
|
-
throw new Error('spaceId is needed!');
|
|
65
|
-
}
|
|
66
|
-
let verifiedPayload = jwt.verify(token, secret);
|
|
67
|
-
let data = await getTokenInfo({ user: verifiedPayload });
|
|
68
|
-
(0, utils_1.setAuthCookies)(req, res, data.userId, data.authToken, spaceId);
|
|
69
|
-
let redirectUrl = verifiedPayload.redirect_url;
|
|
70
|
-
res.redirect(302, redirectUrl);
|
|
71
|
-
}
|
|
72
|
-
catch (error) {
|
|
73
|
-
console.error(error);
|
|
74
|
-
res.status(500).send(error.messenger);
|
|
75
|
-
}
|
|
76
|
-
};
|
|
136
|
+
});
|
|
137
|
+
}); };
|
|
77
138
|
exports.jwtSSO = jwtSSO;
|
|
78
139
|
//# sourceMappingURL=jwt.js.map
|
package/lib/endpoints/jwt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwt.js","sourceRoot":"","sources":["../../src/endpoints/jwt.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"jwt.js","sourceRoot":"","sources":["../../src/endpoints/jwt.ts"],"names":[],"mappings":"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"}
|
package/lib/endpoints/login.js
CHANGED
|
@@ -1,38 +1,86 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
let username = req.body["username"];
|
|
10
|
-
let password = req.body["password"];
|
|
11
|
-
let spaceId = req.body["spaceId"]; // 需要登录的工作区Id,如果不传入,自动选中第一个工作区
|
|
12
|
-
let bcryptPassword = SHA256(password);
|
|
13
|
-
let user = Meteor.users.findOne({
|
|
14
|
-
$or: [{ "username": username }, { "emails.address": username }, { "mobile": username }]
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
15
9
|
});
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (_) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
24
36
|
}
|
|
25
|
-
let authtToken = null;
|
|
26
|
-
let stampedAuthToken = (0, utils_1.generateStampedLoginToken)();
|
|
27
|
-
authtToken = stampedAuthToken.token;
|
|
28
|
-
let hashedToken = (0, utils_1.hashStampedToken)(stampedAuthToken);
|
|
29
|
-
await (0, utils_1.insertHashedLoginToken)(user._id, hashedToken);
|
|
30
|
-
let userSession = await (0, session_1.getSession)(authtToken, spaceId);
|
|
31
|
-
// set cookie to response
|
|
32
|
-
// maxAge 3 month
|
|
33
|
-
(0, utils_1.setAuthCookies)(req, res, user._id, authtToken, userSession.spaceId);
|
|
34
|
-
res.setHeader('X-Space-Token', userSession.spaceId + ',' + authtToken);
|
|
35
|
-
return res.send(userSession);
|
|
36
37
|
};
|
|
38
|
+
exports.__esModule = true;
|
|
39
|
+
exports.login = void 0;
|
|
40
|
+
var SHA256 = require("sha256");
|
|
41
|
+
var bcrypt = require('bcryptjs');
|
|
42
|
+
var session_1 = require("../session");
|
|
43
|
+
var utils_1 = require("../utils");
|
|
44
|
+
var login = function (req, res) { return __awaiter(void 0, void 0, void 0, function () {
|
|
45
|
+
var username, password, spaceId, bcryptPassword, user, match, authtToken, stampedAuthToken, hashedToken, userSession;
|
|
46
|
+
return __generator(this, function (_a) {
|
|
47
|
+
switch (_a.label) {
|
|
48
|
+
case 0:
|
|
49
|
+
username = req.body["username"];
|
|
50
|
+
password = req.body["password"];
|
|
51
|
+
spaceId = req.body["spaceId"];
|
|
52
|
+
bcryptPassword = SHA256(password);
|
|
53
|
+
user = Meteor.users.findOne({
|
|
54
|
+
$or: [{ "username": username }, { "emails.address": username }, { "mobile": username }]
|
|
55
|
+
});
|
|
56
|
+
if (!user) {
|
|
57
|
+
res.status(401).send();
|
|
58
|
+
return [2 /*return*/];
|
|
59
|
+
}
|
|
60
|
+
return [4 /*yield*/, bcrypt.compare(bcryptPassword, user.services.password.bcrypt)];
|
|
61
|
+
case 1:
|
|
62
|
+
match = _a.sent();
|
|
63
|
+
if (!match) {
|
|
64
|
+
res.status(401).send();
|
|
65
|
+
return [2 /*return*/];
|
|
66
|
+
}
|
|
67
|
+
authtToken = null;
|
|
68
|
+
stampedAuthToken = (0, utils_1.generateStampedLoginToken)();
|
|
69
|
+
authtToken = stampedAuthToken.token;
|
|
70
|
+
hashedToken = (0, utils_1.hashStampedToken)(stampedAuthToken);
|
|
71
|
+
return [4 /*yield*/, (0, utils_1.insertHashedLoginToken)(user._id, hashedToken)];
|
|
72
|
+
case 2:
|
|
73
|
+
_a.sent();
|
|
74
|
+
return [4 /*yield*/, (0, session_1.getSession)(authtToken, spaceId)];
|
|
75
|
+
case 3:
|
|
76
|
+
userSession = _a.sent();
|
|
77
|
+
// set cookie to response
|
|
78
|
+
// maxAge 3 month
|
|
79
|
+
(0, utils_1.setAuthCookies)(req, res, user._id, authtToken, userSession.spaceId);
|
|
80
|
+
res.setHeader('X-Space-Token', userSession.spaceId + ',' + authtToken);
|
|
81
|
+
return [2 /*return*/, res.send(userSession)];
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
}); };
|
|
37
85
|
exports.login = login;
|
|
38
86
|
//# sourceMappingURL=login.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/endpoints/login.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/endpoints/login.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,IAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AACjC,IAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACnC,sCAAwC;AACxC,kCAA+G;AAKxG,IAAM,KAAK,GAAG,UAAO,GAAY,EAAE,GAAa;;;;;gBAC/C,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAChC,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAChC,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC9B,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAClC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;oBAC5B,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;iBAC1F,CAAC,CAAC;gBACH,IAAI,CAAC,IAAI,EAAE;oBACP,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;oBACvB,sBAAO;iBACV;gBACW,qBAAM,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAA;;gBAA3E,KAAK,GAAG,SAAmE;gBAC/E,IAAI,CAAC,KAAK,EAAE;oBACR,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;oBACvB,sBAAO;iBACV;gBACG,UAAU,GAAG,IAAI,CAAC;gBAClB,gBAAgB,GAAG,IAAA,iCAAyB,GAAE,CAAC;gBACnD,UAAU,GAAG,gBAAgB,CAAC,KAAK,CAAC;gBAChC,WAAW,GAAG,IAAA,wBAAgB,EAAC,gBAAgB,CAAC,CAAC;gBACrD,qBAAM,IAAA,8BAAsB,EAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,EAAA;;gBAAnD,SAAmD,CAAC;gBAClC,qBAAM,IAAA,oBAAU,EAAC,UAAU,EAAE,OAAO,CAAC,EAAA;;gBAAnD,WAAW,GAAG,SAAqC;gBACvD,yBAAyB;gBACzB,iBAAiB;gBACjB,IAAA,sBAAc,EAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;gBACpE,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,WAAW,CAAC,OAAO,GAAG,GAAG,GAAG,UAAU,CAAC,CAAC;gBACvE,sBAAO,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,EAAC;;;KAChC,CAAA;AA5BY,QAAA,KAAK,SA4BjB"}
|
package/lib/endpoints/logout.js
CHANGED
|
@@ -1,10 +1,48 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (_) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
8
37
|
};
|
|
38
|
+
exports.__esModule = true;
|
|
39
|
+
exports.logout = void 0;
|
|
40
|
+
var utils_1 = require("../utils");
|
|
41
|
+
var logout = function (req, res) { return __awaiter(void 0, void 0, void 0, function () {
|
|
42
|
+
return __generator(this, function (_a) {
|
|
43
|
+
(0, utils_1.clearAuthCookies)(req, res);
|
|
44
|
+
return [2 /*return*/, res.end()];
|
|
45
|
+
});
|
|
46
|
+
}); };
|
|
9
47
|
exports.logout = logout;
|
|
10
48
|
//# sourceMappingURL=logout.js.map
|