@steedos/accounts 3.0.13-beta.9 → 3.0.13
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/core/index.js +177 -249
- package/lib/core/index.js.map +1 -1
- package/lib/database-mongo/index.js +1 -1
- package/lib/database-mongo/index.js.map +1 -1
- package/lib/database-mongo/mongo.js +760 -1278
- package/lib/database-mongo/mongo.js.map +1 -1
- package/lib/db.js +2 -2
- package/lib/db.js.map +1 -1
- package/lib/index.js +107 -143
- package/lib/index.js.map +1 -1
- package/lib/mail.js +36 -47
- package/lib/mail.js.map +1 -1
- package/lib/password/accounts-password.js +505 -763
- package/lib/password/accounts-password.js.map +1 -1
- package/lib/password/index.js +2 -2
- package/lib/password/index.js.map +1 -1
- package/lib/password/utils/encryption.js +10 -22
- package/lib/password/utils/encryption.js.map +1 -1
- package/lib/password/utils/is-email.js +2 -2
- package/lib/password/utils/is-email.js.map +1 -1
- package/lib/password/utils/user.js +3 -3
- package/lib/password/utils/user.js.map +1 -1
- package/lib/rest-express/endpoints/authorize.js +47 -54
- package/lib/rest-express/endpoints/authorize.js.map +1 -1
- package/lib/rest-express/endpoints/geetestV3/geetest-init.js +85 -131
- package/lib/rest-express/endpoints/geetestV3/geetest-init.js.map +1 -1
- package/lib/rest-express/endpoints/geetestV3/sdk/geetest_config.js +1 -1
- package/lib/rest-express/endpoints/geetestV3/sdk/geetest_config.js.map +1 -1
- package/lib/rest-express/endpoints/geetestV3/sdk/geetest_lib.js +112 -160
- package/lib/rest-express/endpoints/geetestV3/sdk/geetest_lib.js.map +1 -1
- package/lib/rest-express/endpoints/geetestV3/sdk/geetest_lib_result.js +8 -9
- package/lib/rest-express/endpoints/geetestV3/sdk/geetest_lib_result.js.map +1 -1
- package/lib/rest-express/endpoints/get-user.js +7 -12
- package/lib/rest-express/endpoints/get-user.js.map +1 -1
- package/lib/rest-express/endpoints/impersonate.js +14 -27
- package/lib/rest-express/endpoints/impersonate.js.map +1 -1
- package/lib/rest-express/endpoints/initServer.js +9 -13
- package/lib/rest-express/endpoints/initServer.js.map +1 -1
- package/lib/rest-express/endpoints/login.js +82 -104
- package/lib/rest-express/endpoints/login.js.map +1 -1
- package/lib/rest-express/endpoints/logout.js +68 -86
- package/lib/rest-express/endpoints/logout.js.map +1 -1
- package/lib/rest-express/endpoints/oauth/provider-callback.js +29 -37
- package/lib/rest-express/endpoints/oauth/provider-callback.js.map +1 -1
- package/lib/rest-express/endpoints/password/change-password.js +73 -102
- package/lib/rest-express/endpoints/password/change-password.js.map +1 -1
- package/lib/rest-express/endpoints/password/register.js +63 -95
- package/lib/rest-express/endpoints/password/register.js.map +1 -1
- package/lib/rest-express/endpoints/password/reset.js +27 -48
- package/lib/rest-express/endpoints/password/reset.js.map +1 -1
- package/lib/rest-express/endpoints/password/setSpaceUserPassword.js +112 -144
- package/lib/rest-express/endpoints/password/setSpaceUserPassword.js.map +1 -1
- package/lib/rest-express/endpoints/password/two-factor.js +39 -70
- package/lib/rest-express/endpoints/password/two-factor.js.map +1 -1
- package/lib/rest-express/endpoints/password/verify-email.js +34 -65
- package/lib/rest-express/endpoints/password/verify-email.js.map +1 -1
- package/lib/rest-express/endpoints/password/verify.js +45 -74
- package/lib/rest-express/endpoints/password/verify.js.map +1 -1
- package/lib/rest-express/endpoints/put-user-name.js +19 -32
- package/lib/rest-express/endpoints/put-user-name.js.map +1 -1
- package/lib/rest-express/endpoints/refresh-access-token.js +14 -27
- package/lib/rest-express/endpoints/refresh-access-token.js.map +1 -1
- package/lib/rest-express/endpoints/service-authenticate.js +55 -79
- package/lib/rest-express/endpoints/service-authenticate.js.map +1 -1
- package/lib/rest-express/endpoints/spaces.js +13 -30
- package/lib/rest-express/endpoints/spaces.js.map +1 -1
- package/lib/rest-express/endpoints/steedos/accept_invitation.js +28 -42
- package/lib/rest-express/endpoints/steedos/accept_invitation.js.map +1 -1
- package/lib/rest-express/endpoints/steedos/create-tenant.js +81 -102
- package/lib/rest-express/endpoints/steedos/create-tenant.js.map +1 -1
- package/lib/rest-express/endpoints/steedos/decline_invitation.js +28 -42
- package/lib/rest-express/endpoints/steedos/decline_invitation.js.map +1 -1
- package/lib/rest-express/endpoints/steedos/get-tenant.js +54 -67
- package/lib/rest-express/endpoints/steedos/get-tenant.js.map +1 -1
- package/lib/rest-express/endpoints/steedos/settings.js +110 -127
- package/lib/rest-express/endpoints/steedos/settings.js.map +1 -1
- package/lib/rest-express/endpoints/update-session.js +33 -48
- package/lib/rest-express/endpoints/update-session.js.map +1 -1
- package/lib/rest-express/express-middleware.js +57 -59
- package/lib/rest-express/express-middleware.js.map +1 -1
- package/lib/rest-express/index.js +1 -1
- package/lib/rest-express/index.js.map +1 -1
- package/lib/rest-express/user-loader.js +67 -86
- package/lib/rest-express/user-loader.js.map +1 -1
- package/lib/rest-express/utils/get-user-agent.js +2 -2
- package/lib/rest-express/utils/get-user-agent.js.map +1 -1
- package/lib/rest-express/utils/getClientIp.js +3 -3
- package/lib/rest-express/utils/getClientIp.js.map +1 -1
- package/lib/rest-express/utils/send-error.js +5 -7
- package/lib/rest-express/utils/send-error.js.map +1 -1
- package/lib/rest-express/utils/steedos-auth.js +21 -21
- package/lib/rest-express/utils/steedos-auth.js.map +1 -1
- package/lib/rest-express/utils/users.js +17 -30
- package/lib/rest-express/utils/users.js.map +1 -1
- package/lib/server/accounts-server.js +413 -574
- package/lib/server/accounts-server.js.map +1 -1
- package/lib/server/index.js +1 -1
- package/lib/server/index.js.map +1 -1
- package/lib/server/utils/email.js +19 -35
- package/lib/server/utils/email.js.map +1 -1
- package/lib/server/utils/get-first-user-email.js +3 -3
- package/lib/server/utils/get-first-user-email.js.map +1 -1
- package/lib/server/utils/tokens.js +14 -24
- package/lib/server/utils/tokens.js.map +1 -1
- package/lib/types/index.js +1 -1
- package/package.json +5 -5
- package/src/database-mongo/mongo.ts +6 -2
- package/src/password/accounts-password.ts +61 -0
- package/src/rest-express/endpoints/password/change-password.ts +1 -1
- package/src/rest-express/endpoints/password/setSpaceUserPassword.ts +5 -0
- package/src/rest-express/endpoints/service-authenticate.ts +2 -5
- package/src/types/types/user.ts +2 -0
|
@@ -1,109 +1,80 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.changePassword = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
ip = (0, getClientIp_1.getClientIp)(req);
|
|
38
|
-
is_phone = false;
|
|
39
|
-
is_tablet = false;
|
|
40
|
-
if (userAgent) {
|
|
41
|
-
try {
|
|
42
|
-
_b = (0, ismobilejs_1.default)(userAgent), phone = _b.phone, tablet = _b.tablet;
|
|
43
|
-
is_phone = phone;
|
|
44
|
-
is_tablet = tablet;
|
|
45
|
-
}
|
|
46
|
-
catch (Exception) {
|
|
47
|
-
console.log("Exception", Exception);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
return [4, db_1.db.find("space_users", {
|
|
51
|
-
filters: [
|
|
52
|
-
["user", "=", req.userId],
|
|
53
|
-
["user_accepted", "=", true],
|
|
54
|
-
],
|
|
55
|
-
fields: ["space"],
|
|
56
|
-
})];
|
|
57
|
-
case 4:
|
|
58
|
-
userSpaces = _c.sent();
|
|
59
|
-
if (!(userSpaces && userSpaces.length > 0)) return [3, 8];
|
|
60
|
-
_i = 0, userSpaces_1 = userSpaces;
|
|
61
|
-
_c.label = 5;
|
|
62
|
-
case 5:
|
|
63
|
-
if (!(_i < userSpaces_1.length)) return [3, 8];
|
|
64
|
-
userSpace = userSpaces_1[_i];
|
|
65
|
-
userId = req.userId;
|
|
66
|
-
return [4, (0, objectql_1.getObject)("operation_logs").insert({
|
|
67
|
-
name: "修改密码",
|
|
68
|
-
type: "change_password",
|
|
69
|
-
remote_user: userId,
|
|
70
|
-
remote_addr: ip,
|
|
71
|
-
http_user_agent: userAgent,
|
|
72
|
-
is_mobile: is_phone,
|
|
73
|
-
is_tablet: is_tablet,
|
|
74
|
-
object: "users",
|
|
75
|
-
status: "success",
|
|
76
|
-
create: new Date(),
|
|
77
|
-
create_by: userId,
|
|
78
|
-
modified_by: userId,
|
|
79
|
-
space: userSpace.space,
|
|
80
|
-
related_to: {
|
|
81
|
-
o: "users",
|
|
82
|
-
ids: [userId],
|
|
83
|
-
},
|
|
84
|
-
})];
|
|
85
|
-
case 6:
|
|
86
|
-
_c.sent();
|
|
87
|
-
_c.label = 7;
|
|
88
|
-
case 7:
|
|
89
|
-
_i++;
|
|
90
|
-
return [3, 5];
|
|
91
|
-
case 8: return [3, 10];
|
|
92
|
-
case 9:
|
|
93
|
-
error_1 = _c.sent();
|
|
94
|
-
console.log("error", error_1);
|
|
95
|
-
return [3, 10];
|
|
96
|
-
case 10:
|
|
97
|
-
res.json({ userId: req.userId, password_expired: false });
|
|
98
|
-
return [3, 12];
|
|
99
|
-
case 11:
|
|
100
|
-
err_1 = _c.sent();
|
|
101
|
-
(0, send_error_1.sendError)(res, err_1);
|
|
102
|
-
return [3, 12];
|
|
103
|
-
case 12: return [2];
|
|
4
|
+
const send_error_1 = require("../../utils/send-error");
|
|
5
|
+
const objectql_1 = require("@steedos/objectql");
|
|
6
|
+
const getClientIp_1 = require("../../utils/getClientIp");
|
|
7
|
+
const get_user_agent_1 = require("../../utils/get-user-agent");
|
|
8
|
+
const ismobilejs_1 = require("ismobilejs");
|
|
9
|
+
const db_1 = require("../../../db");
|
|
10
|
+
const config = (0, objectql_1.getSteedosConfig)();
|
|
11
|
+
const changePassword = (accountsServer) => async (req, res) => {
|
|
12
|
+
try {
|
|
13
|
+
if (!req.userId) {
|
|
14
|
+
res.status(401);
|
|
15
|
+
res.json({ message: "Unauthorized" });
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
const { oldPassword, newPassword } = req.body;
|
|
19
|
+
const password = accountsServer.getServices().password;
|
|
20
|
+
await password.changePassword(req.userId, oldPassword, newPassword);
|
|
21
|
+
password.db.collection.updateOne({ _id: req.userId }, { $set: { password_expired: false, password_modified_at: new Date() } });
|
|
22
|
+
try {
|
|
23
|
+
await db_1.db.updateMany("space_users", [["user", "=", req.userId]], { password_expired: false });
|
|
24
|
+
const userAgent = (0, get_user_agent_1.getUserAgent)(req);
|
|
25
|
+
const ip = (0, getClientIp_1.getClientIp)(req);
|
|
26
|
+
let is_phone = false;
|
|
27
|
+
let is_tablet = false;
|
|
28
|
+
if (userAgent) {
|
|
29
|
+
try {
|
|
30
|
+
const { phone, tablet } = (0, ismobilejs_1.default)(userAgent);
|
|
31
|
+
is_phone = phone;
|
|
32
|
+
is_tablet = tablet;
|
|
33
|
+
}
|
|
34
|
+
catch (Exception) {
|
|
35
|
+
console.log(`Exception`, Exception);
|
|
36
|
+
}
|
|
104
37
|
}
|
|
105
|
-
|
|
106
|
-
|
|
38
|
+
const userSpaces = await db_1.db.find("space_users", {
|
|
39
|
+
filters: [
|
|
40
|
+
["user", "=", req.userId],
|
|
41
|
+
["user_accepted", "=", true],
|
|
42
|
+
],
|
|
43
|
+
fields: ["space"],
|
|
44
|
+
});
|
|
45
|
+
if (userSpaces && userSpaces.length > 0) {
|
|
46
|
+
for (let userSpace of userSpaces) {
|
|
47
|
+
const userId = req.userId;
|
|
48
|
+
await (0, objectql_1.getObject)("operation_logs").insert({
|
|
49
|
+
name: "修改密码",
|
|
50
|
+
type: "change_password",
|
|
51
|
+
remote_user: userId,
|
|
52
|
+
remote_addr: ip,
|
|
53
|
+
http_user_agent: userAgent,
|
|
54
|
+
is_mobile: is_phone,
|
|
55
|
+
is_tablet,
|
|
56
|
+
object: "users",
|
|
57
|
+
status: "success",
|
|
58
|
+
create: new Date(),
|
|
59
|
+
create_by: userId,
|
|
60
|
+
modified_by: userId,
|
|
61
|
+
space: userSpace.space,
|
|
62
|
+
related_to: {
|
|
63
|
+
o: "users",
|
|
64
|
+
ids: [userId],
|
|
65
|
+
},
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
console.log("error", error);
|
|
72
|
+
}
|
|
73
|
+
res.json({ userId: req.userId, password_expired: false });
|
|
74
|
+
}
|
|
75
|
+
catch (err) {
|
|
76
|
+
(0, send_error_1.sendError)(res, err);
|
|
77
|
+
}
|
|
107
78
|
};
|
|
108
79
|
exports.changePassword = changePassword;
|
|
109
80
|
//# sourceMappingURL=change-password.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"change-password.js","sourceRoot":"","sources":["../../../../src/rest-express/endpoints/password/change-password.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"change-password.js","sourceRoot":"","sources":["../../../../src/rest-express/endpoints/password/change-password.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,101 +1,69 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.registerPassword = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
case 0:
|
|
15
|
-
_a.trys.push([0, 15, , 16]);
|
|
16
|
-
spaceId = '';
|
|
17
|
-
if (req.body.spaceId) {
|
|
18
|
-
spaceId = req.body.spaceId;
|
|
19
|
-
}
|
|
20
|
-
return [4, (0, core_1.canRegister)(spaceId, 'signupAccount')];
|
|
21
|
-
case 1:
|
|
22
|
-
if (!(_a.sent())) {
|
|
23
|
-
throw new Error('accounts.unenableRegister');
|
|
24
|
-
}
|
|
25
|
-
return [4, (0, core_1.loginWithCode)(spaceId)];
|
|
26
|
-
case 2:
|
|
27
|
-
codeRequired = _a.sent();
|
|
28
|
-
if (codeRequired && !req.body.verifyCode) {
|
|
29
|
-
throw new Error('accounts.codeRequired');
|
|
30
|
-
}
|
|
31
|
-
password = accountsServer.getServices().password;
|
|
32
|
-
inviteInfo = null;
|
|
33
|
-
if (!req.body.invite_token) return [3, 5];
|
|
34
|
-
return [4, password.getInviteInfo(req.body.invite_token)];
|
|
35
|
-
case 3:
|
|
36
|
-
inviteInfo = _a.sent();
|
|
37
|
-
if (!inviteInfo || !inviteInfo.valid) {
|
|
38
|
-
throw new Error('accounts.invalid_invite');
|
|
39
|
-
}
|
|
40
|
-
return [4, (0, core_1.canRegister)(inviteInfo.space, 'inviteSpaceUser')];
|
|
41
|
-
case 4:
|
|
42
|
-
if (!(_a.sent())) {
|
|
43
|
-
throw new Error('accounts.unenableRegister');
|
|
44
|
-
}
|
|
45
|
-
_a.label = 5;
|
|
46
|
-
case 5: return [4, db_1.db.findOne("spaces", req.body.spaceId, { fields: ["name"] })];
|
|
47
|
-
case 6:
|
|
48
|
-
space = _a.sent();
|
|
49
|
-
return [4, password.createUser(req.body)];
|
|
50
|
-
case 7:
|
|
51
|
-
userId = _a.sent();
|
|
52
|
-
if (!(inviteInfo && inviteInfo.space)) return [3, 9];
|
|
53
|
-
return [4, (0, objectql_1.getSteedosSchema)().broker.call("spaces.addSpaceUsers", {
|
|
54
|
-
spaceId: inviteInfo.space,
|
|
55
|
-
userId: userId,
|
|
56
|
-
user_accepted: true,
|
|
57
|
-
})];
|
|
58
|
-
case 8:
|
|
59
|
-
_a.sent();
|
|
60
|
-
return [3, 11];
|
|
61
|
-
case 9:
|
|
62
|
-
if (!(req.body.spaceId && space)) return [3, 11];
|
|
63
|
-
return [4, (0, objectql_1.getSteedosSchema)().broker.call("spaces.addSpaceUsers", {
|
|
64
|
-
spaceId: req.body.spaceId,
|
|
65
|
-
userId: userId,
|
|
66
|
-
user_accepted: true,
|
|
67
|
-
})];
|
|
68
|
-
case 10:
|
|
69
|
-
_a.sent();
|
|
70
|
-
_a.label = 11;
|
|
71
|
-
case 11: return [4, password.findUserById(userId)];
|
|
72
|
-
case 12:
|
|
73
|
-
foundedUser = _a.sent();
|
|
74
|
-
return [4, accountsServer.loginWithUser(foundedUser, {})];
|
|
75
|
-
case 13:
|
|
76
|
-
result = _a.sent();
|
|
77
|
-
(0, steedos_auth_1.setAuthCookies)(req, res, result.user._id, result.token, result.tokens.accessToken);
|
|
78
|
-
enable_MFA = false;
|
|
79
|
-
return [4, password.getUserProfile(result.user._id)];
|
|
80
|
-
case 14:
|
|
81
|
-
userProfile = _a.sent();
|
|
82
|
-
if (userProfile) {
|
|
83
|
-
enable_MFA = userProfile.enable_MFA || false;
|
|
84
|
-
}
|
|
85
|
-
if (enable_MFA) {
|
|
86
|
-
if (!req.body.verifyCode) {
|
|
87
|
-
result._next = 'TO_VERIFY_MOBILE';
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
res.json(result);
|
|
91
|
-
return [3, 16];
|
|
92
|
-
case 15:
|
|
93
|
-
err_1 = _a.sent();
|
|
94
|
-
(0, send_error_1.sendError)(res, err_1);
|
|
95
|
-
return [3, 16];
|
|
96
|
-
case 16: return [2];
|
|
4
|
+
const send_error_1 = require("../../utils/send-error");
|
|
5
|
+
const core_1 = require("../../../core");
|
|
6
|
+
const steedos_auth_1 = require("../../utils/steedos-auth");
|
|
7
|
+
const db_1 = require("../../../db");
|
|
8
|
+
const objectql_1 = require("@steedos/objectql");
|
|
9
|
+
const registerPassword = (accountsServer) => async (req, res) => {
|
|
10
|
+
try {
|
|
11
|
+
let spaceId = '';
|
|
12
|
+
if (req.body.spaceId) {
|
|
13
|
+
spaceId = req.body.spaceId;
|
|
97
14
|
}
|
|
98
|
-
|
|
99
|
-
|
|
15
|
+
if (!(await (0, core_1.canRegister)(spaceId, 'signupAccount'))) {
|
|
16
|
+
throw new Error('accounts.unenableRegister');
|
|
17
|
+
}
|
|
18
|
+
let codeRequired = await (0, core_1.loginWithCode)(spaceId);
|
|
19
|
+
if (codeRequired && !req.body.verifyCode) {
|
|
20
|
+
throw new Error('accounts.codeRequired');
|
|
21
|
+
}
|
|
22
|
+
const password = accountsServer.getServices().password;
|
|
23
|
+
let inviteInfo = null;
|
|
24
|
+
if (req.body.invite_token) {
|
|
25
|
+
inviteInfo = await password.getInviteInfo(req.body.invite_token);
|
|
26
|
+
if (!inviteInfo || !inviteInfo.valid) {
|
|
27
|
+
throw new Error('accounts.invalid_invite');
|
|
28
|
+
}
|
|
29
|
+
if (!(await (0, core_1.canRegister)(inviteInfo.space, 'inviteSpaceUser'))) {
|
|
30
|
+
throw new Error('accounts.unenableRegister');
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
const space = await db_1.db.findOne("spaces", req.body.spaceId, { fields: ["name"] });
|
|
34
|
+
const userId = await password.createUser(req.body);
|
|
35
|
+
if (inviteInfo && inviteInfo.space) {
|
|
36
|
+
await (0, objectql_1.getSteedosSchema)().broker.call(`spaces.addSpaceUsers`, {
|
|
37
|
+
spaceId: inviteInfo.space,
|
|
38
|
+
userId,
|
|
39
|
+
user_accepted: true,
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
else if (req.body.spaceId && space) {
|
|
43
|
+
await (0, objectql_1.getSteedosSchema)().broker.call(`spaces.addSpaceUsers`, {
|
|
44
|
+
spaceId: req.body.spaceId,
|
|
45
|
+
userId,
|
|
46
|
+
user_accepted: true,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
const foundedUser = await password.findUserById(userId);
|
|
50
|
+
const result = await accountsServer.loginWithUser(foundedUser, {});
|
|
51
|
+
(0, steedos_auth_1.setAuthCookies)(req, res, result.user._id, result.token, result.tokens.accessToken);
|
|
52
|
+
let enable_MFA = false;
|
|
53
|
+
const userProfile = await password.getUserProfile(result.user._id);
|
|
54
|
+
if (userProfile) {
|
|
55
|
+
enable_MFA = userProfile.enable_MFA || false;
|
|
56
|
+
}
|
|
57
|
+
if (enable_MFA) {
|
|
58
|
+
if (!req.body.verifyCode) {
|
|
59
|
+
result._next = 'TO_VERIFY_MOBILE';
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
res.json(result);
|
|
63
|
+
}
|
|
64
|
+
catch (err) {
|
|
65
|
+
(0, send_error_1.sendError)(res, err);
|
|
66
|
+
}
|
|
67
|
+
};
|
|
100
68
|
exports.registerPassword = registerPassword;
|
|
101
69
|
//# sourceMappingURL=register.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../../../src/rest-express/endpoints/password/register.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../../../src/rest-express/endpoints/password/register.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,54 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.sendResetPasswordEmail = exports.resetPassword = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
loginResult = _b.sent();
|
|
21
|
-
res.json(loginResult);
|
|
22
|
-
return [3, 3];
|
|
23
|
-
case 2:
|
|
24
|
-
err_1 = _b.sent();
|
|
25
|
-
(0, send_error_1.sendError)(res, err_1);
|
|
26
|
-
return [3, 3];
|
|
27
|
-
case 3: return [2];
|
|
28
|
-
}
|
|
29
|
-
});
|
|
30
|
-
}); }; };
|
|
4
|
+
const send_error_1 = require("../../utils/send-error");
|
|
5
|
+
const get_user_agent_1 = require("../../utils/get-user-agent");
|
|
6
|
+
const request_ip_1 = require("request-ip");
|
|
7
|
+
const resetPassword = (accountsServer) => async (req, res) => {
|
|
8
|
+
try {
|
|
9
|
+
const { token, newPassword } = req.body;
|
|
10
|
+
const userAgent = (0, get_user_agent_1.getUserAgent)(req);
|
|
11
|
+
const ip = (0, request_ip_1.getClientIp)(req);
|
|
12
|
+
const password = accountsServer.getServices().password;
|
|
13
|
+
const loginResult = await password.resetPassword(token, newPassword, { userAgent, ip });
|
|
14
|
+
res.json(loginResult);
|
|
15
|
+
}
|
|
16
|
+
catch (err) {
|
|
17
|
+
(0, send_error_1.sendError)(res, err);
|
|
18
|
+
}
|
|
19
|
+
};
|
|
31
20
|
exports.resetPassword = resetPassword;
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
res.json(null);
|
|
44
|
-
return [3, 3];
|
|
45
|
-
case 2:
|
|
46
|
-
err_2 = _a.sent();
|
|
47
|
-
(0, send_error_1.sendError)(res, err_2);
|
|
48
|
-
return [3, 3];
|
|
49
|
-
case 3: return [2];
|
|
50
|
-
}
|
|
51
|
-
});
|
|
52
|
-
}); }; };
|
|
21
|
+
const sendResetPasswordEmail = (accountsServer) => async (req, res) => {
|
|
22
|
+
try {
|
|
23
|
+
const { email } = req.body;
|
|
24
|
+
const password = accountsServer.getServices().password;
|
|
25
|
+
await password.sendResetPasswordEmail(email);
|
|
26
|
+
res.json(null);
|
|
27
|
+
}
|
|
28
|
+
catch (err) {
|
|
29
|
+
(0, send_error_1.sendError)(res, err);
|
|
30
|
+
}
|
|
31
|
+
};
|
|
53
32
|
exports.sendResetPasswordEmail = sendResetPasswordEmail;
|
|
54
33
|
//# sourceMappingURL=reset.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reset.js","sourceRoot":"","sources":["../../../../src/rest-express/endpoints/password/reset.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"reset.js","sourceRoot":"","sources":["../../../../src/rest-express/endpoints/password/reset.ts"],"names":[],"mappings":";;;AAEA,uDAAmD;AACnD,+DAA0D;AAC1D,2CAAyC;AAElC,MAAM,aAAa,GAAG,CAAC,cAA8B,EAAE,EAAE,CAAC,KAAK,EACpE,GAAoB,EACpB,GAAqB,EACrB,EAAE;IACF,IAAI,CAAC;QACH,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;QACxC,MAAM,SAAS,GAAG,IAAA,6BAAY,EAAC,GAAG,CAAC,CAAC;QACpC,MAAM,EAAE,GAAG,IAAA,wBAAW,EAAC,GAAG,CAAC,CAAC;QAC5B,MAAM,QAAQ,GAAQ,cAAc,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC;QAC5D,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;QACxF,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACxB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAA,sBAAS,EAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACtB,CAAC;AACH,CAAC,CAAC;AAdW,QAAA,aAAa,iBAcxB;AAEK,MAAM,sBAAsB,GAAG,CAAC,cAA8B,EAAE,EAAE,CAAC,KAAK,EAC7E,GAAoB,EACpB,GAAqB,EACrB,EAAE;IACF,IAAI,CAAC;QACH,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;QAC3B,MAAM,QAAQ,GAAQ,cAAc,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC;QAC5D,MAAM,QAAQ,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;QAC7C,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAA,sBAAS,EAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACtB,CAAC;AACH,CAAC,CAAC;AAZW,QAAA,sBAAsB,0BAYjC"}
|