first commit

This commit is contained in:
2025-01-23 01:12:17 +03:00
parent 651afd6e36
commit 1b09267e47
27 changed files with 4274 additions and 0 deletions

18
src/routers/api.js Normal file
View File

@@ -0,0 +1,18 @@
import { Router } from 'express';
import requiredParameters from '../middlewares/requiredParameters.js';
import existance from '../middlewares/existance.js';
import auth from '../middlewares/auth.js';
import utils from '../utils.js';
import UserController from '../controllers/user.js';
const ApiRouter = new Router();
ApiRouter.post('/register', requiredParameters.requireUsername, requiredParameters.requirePassword, auth.validateInviteToken, existance.userDoesNotExist, UserController.register);
ApiRouter.post('/login', requiredParameters.requireUsername, requiredParameters.requirePassword, existance.userExist, UserController.login);
ApiRouter.get('/logout', auth.authenticate, UserController.logout);
ApiRouter.post('/uploadSkin', auth.authenticate, utils.upload.single('file'), requiredParameters.requireFile, UserController.uploadSkin);
ApiRouter.post('/uploadCape', auth.authenticate, utils.upload.single('file'), requiredParameters.requireFile, UserController.uploadCape);
export default ApiRouter;

40
src/routers/user.js Normal file
View File

@@ -0,0 +1,40 @@
import { Router } from 'express';
import jwt from 'jsonwebtoken';
import dotenv from 'dotenv';
import auth from '../middlewares/auth.js';
import UserService from '../services/user.js';
dotenv.config({path: ".env"});
const UserRouter = new Router();
UserRouter.get('/register', async (req, res) => {
if (req.session.jwt && jwt.verify(req.session.jwt, process.env.SECRET))
return res.redirect("/index");
return res.render("register.pug", {
require_token: process.env.REQUIRE_TOKEN == "true"? true : false
});
});
UserRouter.get(['/', '/login'], async (req, res) => {
if(req.session.jwt && jwt.verify(req.session.jwt, process.env.SECRET))
return res.redirect("/index");
return res.render("login.pug");
});
UserRouter.get('/index', auth.authenticate, async (req, res) => {
if (!req.session.jwt || !jwt.verify(req.session.jwt, process.env.SECRET))
return res.redirect("/login");
const decoded = jwt.decode(req.session.jwt);
return res.render('index.pug', {
username: decoded.username,
can_have_cloak: await UserService.canHaveCloak(decoded.username)
});
})
export default UserRouter;