|
@@ -1,7 +1,8 @@
|
|
const bodyParser = require("body-parser");
|
|
const bodyParser = require("body-parser");
|
|
const express = require("express");
|
|
const express = require("express");
|
|
let session = require('express-session')
|
|
let session = require('express-session')
|
|
-
|
|
|
|
|
|
+let singleton = require('./Singletons')
|
|
|
|
+const {cwh} = require("./Singletons");
|
|
module.exports = function UserInteractions(opts) {
|
|
module.exports = function UserInteractions(opts) {
|
|
async function sha256(message) {
|
|
async function sha256(message) {
|
|
// encode as UTF-8
|
|
// encode as UTF-8
|
|
@@ -24,44 +25,70 @@ module.exports = function UserInteractions(opts) {
|
|
resave: false,
|
|
resave: false,
|
|
saveUninitialized: false,
|
|
saveUninitialized: false,
|
|
cookie: {
|
|
cookie: {
|
|
- secure: "auto"
|
|
|
|
|
|
+ sameSite: "lax", secure: "auto"
|
|
}
|
|
}
|
|
}))
|
|
}))
|
|
app.use(bodyParser.json({"limit": "200mb"}));
|
|
app.use(bodyParser.json({"limit": "200mb"}));
|
|
app.use(express.json());
|
|
app.use(express.json());
|
|
|
|
+
|
|
let db = opts.db;
|
|
let db = opts.db;
|
|
- console.log("init")
|
|
|
|
- app.get("/userapi", (req, res) => {
|
|
|
|
- res.end(JSON.stringify(req.session));
|
|
|
|
|
|
+ app.options("/login", (req, res) => {
|
|
|
|
+ res.set(singleton.cwh).end("FUCK YOU CORS")
|
|
})
|
|
})
|
|
- app.post("/login", async functioqn (req, res) {
|
|
|
|
- db.execute("SELECT uuid from user where username = ? and password = ?", [req.body.username, await sha256(req.body.password)], function (err, result) {
|
|
|
|
- if (result.length === 0) {
|
|
|
|
- res.status(500).json({code: 500, R: "DNE"})
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
- req.session.uuid = result[0].uuid;
|
|
|
|
- res.header("").status(200).json({code: 200, R: "SS", uid: result[0].uuid});
|
|
|
|
|
|
+ app.get("/userapi", (req, res) => {
|
|
|
|
+ if (!req.session.uuid) {
|
|
|
|
+ res.set(singleton.cwh).status(500).json({code: 500, R: "IO"})
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ db.execute("SELECT username, email from user where uuid = ?", [req.session.uuid], (err, result) => {
|
|
|
|
+ res.set(singleton.cwh).end(JSON.stringify({
|
|
|
|
+ uuid: req.session.uuid,
|
|
|
|
+ username: result[0].username,
|
|
|
|
+ email: result[0].email,
|
|
|
|
+ }));
|
|
|
|
+
|
|
})
|
|
})
|
|
})
|
|
})
|
|
|
|
+ app.post("/login", async function (req, res) {
|
|
|
|
+ if (!req.body.username || !req.body.password) {
|
|
|
|
+ res.set(singleton.cwh).status(500).json({code: 500, R: "IO"})
|
|
|
|
+
|
|
|
|
+ } else {
|
|
|
|
+ db.execute("SELECT uuid from user where username = ? and password = ?", [req.body.username, await sha256(req.body.password)], function (err, result) {
|
|
|
|
+ if (result.length === 0) {
|
|
|
|
+ res.set(cwh).status(500).json({code: 500, R: "DNE"})
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ req.session.uuid = result[0].uuid;
|
|
|
|
+
|
|
|
|
+ res.set(singleton.cwh).status(200).json({
|
|
|
|
+ code: 200,
|
|
|
|
+ R: "SS",
|
|
|
|
+ uid: result[0].uuid
|
|
|
|
+ });
|
|
|
|
+ })
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ })
|
|
app.post("/register", function (req, res) {
|
|
app.post("/register", function (req, res) {
|
|
db.execute("SELECT uuid FROM user WHERE username = ?", [req.body.username], async function (err, rows) {
|
|
db.execute("SELECT uuid FROM user WHERE username = ?", [req.body.username], async function (err, rows) {
|
|
if (req.body.username === undefined || req.body.username === "" || req.body.username === null || req.body.password === undefined || req.body.password === "" || req.body.password === null) {
|
|
if (req.body.username === undefined || req.body.username === "" || req.body.username === null || req.body.password === undefined || req.body.password === "" || req.body.password === null) {
|
|
- res.status(500).json({code: 500, R: "PE"})
|
|
|
|
|
|
+ res.set(cwh).status(500).json({code: 500, R: "PE"})
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
if (err) {
|
|
if (err) {
|
|
console.log(err);
|
|
console.log(err);
|
|
- res.status(500).json({code: 500, R: "UNE"});
|
|
|
|
|
|
+ res.set(cwh).status(500).json({code: 500, R: "UNE"});
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
if (rows.length === 0) {
|
|
if (rows.length === 0) {
|
|
db.execute("INSERT INTO user (uuid, username, email, password, avatar, time) values (?,?,?,?,?,?)", [crypto.randomUUID(), req.body.username, null, await sha256(req.body.password), null, Date.now()]);
|
|
db.execute("INSERT INTO user (uuid, username, email, password, avatar, time) values (?,?,?,?,?,?)", [crypto.randomUUID(), req.body.username, null, await sha256(req.body.password), null, Date.now()]);
|
|
- res.json({code: 200, R: "SS"});
|
|
|
|
|
|
+ res.status(200).set(singleton.cwh).json({code: 200, R: "SS"});
|
|
|
|
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
- res.status(500).json({code: 500, R: "UE"});
|
|
|
|
|
|
+ res.set(cwh).status(500).json({code: 500, R: "UE"});
|
|
return;
|
|
return;
|
|
})
|
|
})
|
|
})
|
|
})
|