Skip to content

Commit dc3ff28

Browse files
authored
Final captcha fixes
1 parent 7c0c011 commit dc3ff28

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

backend/server.js

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ if (!existsSync("./db.sqlite")) writeFileSync("./db.sqlite", "");
1515
const io = socket(server);
1616
sqlite.open("db.sqlite");
1717
const sessions = require("./SessionIDManager");
18-
const captchas = new Map();
18+
let captchas = new Array();
1919

2020
/**
2121
* Displays an error by emitting to websocket on clientside
@@ -33,7 +33,9 @@ function displayError(msg, data, event, status) {
3333
});
3434
}
3535

36-
36+
setInterval(() => {
37+
captchas = captchas.filter(val => (val.createdAt + 18e4) > Date.now());
38+
}, 1000);
3739

3840
io.on("connection", data => {
3941
data.on("getCaptcha", () => {
@@ -45,7 +47,10 @@ io.on("connection", data => {
4547
y: Math.floor(Math.random() * 65) + 25
4648
}
4749
});
48-
captchas.set(data.id, captcha);
50+
captchas.push({
51+
captcha: captcha,
52+
createdAt: Date.now()
53+
});
4954
});
5055

5156
data.on("login", res => {
@@ -94,8 +99,8 @@ io.on("connection", data => {
9499

95100
if (/[^\w ]+/.test(res.username)) return displayError("Username should only contain A-Za-z_ ", data, "register", 400);
96101

97-
if(res.captcha !== captchas.get(data.id)) return displayError("Captcha is not correct", data, "register", 400);
98-
102+
if(!captchas.find(val => val.captcha === res.captcha)) return displayError("Captcha is not correct", data, "register", 400);
103+
99104
const hash = bcrypt.hashSync(res.password, 10);
100105

101106
sqlite.prepare("SELECT * FROM accounts WHERE username = ?").then(prepare => {
@@ -107,6 +112,7 @@ io.on("connection", data => {
107112
status: 200,
108113
message: "Account successfully created!"
109114
});
115+
captchas.splice(captchas.findIndex(val => val.captcha === res.captcha), captchas.findIndex(val => val.captcha === res.captcha));
110116
}).catch(console.log);
111117
}).catch(console.log);
112118
});

0 commit comments

Comments
 (0)