56 lines
1.4 KiB
JavaScript
56 lines
1.4 KiB
JavaScript
const fs = require("fs/promises");
|
|
|
|
const redis = require("../../Miscellaneous/redis");
|
|
|
|
module.exports = async (res, req) => {
|
|
const cookieHeader = req.getHeader("cookie");
|
|
const cookie = cookieHeader.split("ps=")[1];
|
|
|
|
res.onAborted(() => res.isAborted = true);
|
|
|
|
if (!cookie) {
|
|
console.info("no cookie");
|
|
return res
|
|
.writeStatus("301 moved permanently")
|
|
.writeHeader("Location", "redirect")
|
|
.end();
|
|
};
|
|
|
|
const formattedCookie = cookie.split(".")[0].slice(4);
|
|
const cookieInDB = await redis.get(`sess:${formattedCookie}`);
|
|
|
|
if (!cookieInDB) {
|
|
console.info("no db");
|
|
return res
|
|
.writeStatus("301 moved permanently")
|
|
.writeHeader("Location", "redirect")
|
|
.end();
|
|
};
|
|
|
|
const parsedCookie = JSON.parse(cookieInDB);
|
|
if (!parsedCookie.accountID) {
|
|
console.info("no account id");
|
|
return res
|
|
.writeStatus("301 moved permanently")
|
|
.writeHeader("Location", "redirect")
|
|
.end();
|
|
};
|
|
|
|
const html = await fs.readFile("../../TestEnvironment/dist/production/index.html")
|
|
.catch(e => {
|
|
res.cork(() => {
|
|
res
|
|
.writeStatus("404")
|
|
.end();
|
|
});
|
|
});
|
|
|
|
if (!html) return;
|
|
|
|
res.cork(() => {
|
|
res
|
|
.writeStatus("200 OK")
|
|
.writeHeader("Content-Type", "text/html")
|
|
.end(html);
|
|
});
|
|
} |