2025-01-23 01:12:17 +03:00
|
|
|
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) => {
|
2025-02-03 04:02:52 +03:00
|
|
|
if (req.cookies["jwt"] && jwt.verify(req.cookies["jwt"], process.env.SECRET))
|
2025-01-23 01:12:17 +03:00
|
|
|
return res.redirect("/index");
|
|
|
|
|
|
|
|
return res.render("register.pug", {
|
|
|
|
require_token: process.env.REQUIRE_TOKEN == "true"? true : false
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
UserRouter.get(['/', '/login'], async (req, res) => {
|
2025-02-03 04:02:52 +03:00
|
|
|
if(req.cookies["jwt"] && jwt.verify(req.cookies["jwt"], process.env.SECRET)) {
|
2025-01-23 01:12:17 +03:00
|
|
|
return res.redirect("/index");
|
2025-01-23 11:48:59 +03:00
|
|
|
}
|
|
|
|
|
2025-01-23 01:12:17 +03:00
|
|
|
return res.render("login.pug");
|
|
|
|
});
|
|
|
|
|
2025-02-02 19:19:12 +03:00
|
|
|
UserRouter.get(['/index', '/skin'], auth.authenticate, async (req, res) => {
|
2025-02-03 04:02:52 +03:00
|
|
|
const username = jwt.decode(req.cookies["jwt"]).username;
|
2025-02-02 19:19:12 +03:00
|
|
|
|
|
|
|
return res.render('skin.pug', {
|
|
|
|
username: username,
|
2025-02-10 07:00:55 +03:00
|
|
|
can_have_cloak: await UserService.canHaveCloak(username),
|
|
|
|
enable_worldmap: process.env.ENABLE_WORLDMAP
|
2025-02-02 19:19:12 +03:00
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
UserRouter.get('/changepassword', auth.authenticate, async (req, res) => {
|
2025-02-03 04:02:52 +03:00
|
|
|
const username = jwt.decode(req.cookies["jwt"]).username;
|
2025-02-02 19:19:12 +03:00
|
|
|
|
|
|
|
return res.render('changepassword.pug', {
|
2025-02-10 07:00:55 +03:00
|
|
|
can_have_cloak: await UserService.canHaveCloak(username),
|
|
|
|
enable_worldmap: process.env.ENABLE_WORLDMAP
|
2025-02-02 19:19:12 +03:00
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
UserRouter.get('/chat', auth.authenticate, async (req, res) => {
|
2025-02-03 04:02:52 +03:00
|
|
|
const username = jwt.decode(req.cookies["jwt"]).username;
|
2025-02-02 19:19:12 +03:00
|
|
|
|
|
|
|
return res.render('chat.pug', {
|
2025-02-10 07:00:55 +03:00
|
|
|
can_have_cloak: await UserService.canHaveCloak(username),
|
|
|
|
enable_worldmap: process.env.ENABLE_WORLDMAP
|
2025-01-23 01:12:17 +03:00
|
|
|
});
|
2025-02-02 19:19:12 +03:00
|
|
|
});
|
|
|
|
|
|
|
|
UserRouter.get('/worldmap', auth.authenticate, async (req, res) => {
|
2025-02-03 04:02:52 +03:00
|
|
|
const username = jwt.decode(req.cookies["jwt"]).username;
|
2025-02-02 19:19:12 +03:00
|
|
|
|
|
|
|
return res.render('worldmap.pug', {
|
2025-02-10 07:00:55 +03:00
|
|
|
can_have_cloak: await UserService.canHaveCloak(username),
|
|
|
|
enable_worldmap: process.env.ENABLE_WORLDMAP,
|
|
|
|
worldmap_url: process.env.WORLDMAP_URL
|
2025-02-02 19:19:12 +03:00
|
|
|
});
|
|
|
|
});
|
2025-01-23 01:12:17 +03:00
|
|
|
|
2025-02-10 07:00:55 +03:00
|
|
|
export default UserRouter;
|