返回提交历史
Modified
src/services/wsService.ts
+17
-9
XFEstudio/XFESpaceNinjaServer
fix(webui): handle name already being taken (#2530)
Closes #2528 Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/2530 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
304af514
代码差异
1 个文件
+17
-9
@@ -2,7 +2,13 @@ import http from "http";
2
2
import https from "https";
3
3
import ws from "ws";
4
4
import { Account } from "@/src/models/loginModel";
5
import { createAccount, createNonce, getUsernameFromEmail, isCorrectPassword } from "@/src/services/loginService";
5
import {
6
createAccount,
7
createNonce,
8
getUsernameFromEmail,
9
isCorrectPassword,
10
isNameTaken
11
} from "@/src/services/loginService";
6
12
import { IDatabaseAccountJson } from "@/src/types/loginTypes";
7
13
import { HydratedDocument } from "mongoose";
8
14
import { logError } from "@/src/utils/logger";
@@ -105,14 +111,16 @@ const wsOnConnect = (ws: ws, req: http.IncomingMessage): void => {
105
111
}
106
112
} else if (data.auth.isRegister) {
107
113
const name = await getUsernameFromEmail(data.auth.email);
108
account = await createAccount({
109
email: data.auth.email,
110
password: data.auth.password,
111
ClientType: "webui",
112
LastLogin: new Date(),
113
DisplayName: name,
114
Nonce: createNonce()
115
});
114
if (!(await isNameTaken(name))) {
115
account = await createAccount({
116
email: data.auth.email,
117
password: data.auth.password,
118
ClientType: "webui",
119
LastLogin: new Date(),
120
DisplayName: name,
121
Nonce: createNonce()
122
});
123
}
116
124
}
117
125
if (account) {
118
126
(ws as IWsCustomData).accountId = account.id;