-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserver.js
61 lines (47 loc) · 1.78 KB
/
server.js
1
2
3
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
// init mysql connection
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : '',
database : 'authenticate'
});
connection.connect();
console.log('Connected to authenticate');
// init server
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.json());
// eventlistener for post request
app.post('/authenticate', (req, res) => {
const computerToken = "computerToken"
const gameToken = "gameToken"
var containsCT;
var containsGT;
for (const x in req.body) {
var key = JSON.stringify(x).slice(1, -1);
switch (key) {
case computerToken: containsCT = true; break;
case gameToken: containsGT = true; break;
}
}
// exits function if the body doesn't contain "computerToken" or "gameToken" keys
if (!containsCT || !containsGT) {
res.send('INVALID')
return;
}
// checks if the computer token and game token matches
connection.query('SELECT computertoken, claimed FROM tokenlog WHERE token= \'' + req.body[gameToken] + '\'', function (error, results, fields) {
if (error) throw error;
var parsedResponse = Object.values(JSON.parse(JSON.stringify(results)))[0];
if (parsedResponse['claimed'] == '0') {
connection.query('UPDATE tokenlog SET claimed = 1, computerToken = \'' + req.body[computerToken] + '\' WHERE token= \'' + req.body[gameToken] + '\'')
res.send('APPROVED');
} else if (parsedResponse['computertoken'] == req.body[computerToken]) {
res.send('APPROVED');
} else res.send('DENIED');
});
});
// starts server
app.listen(3000, () => console.log(`started server at http://localhost:3000`));