This commit is contained in:
Lukian LEIZOUR 2024-05-31 16:03:24 +02:00
parent 4825be45e1
commit 0bac40a72f
8 changed files with 256 additions and 16 deletions

View file

@ -1,14 +1,7 @@
const express = require('express');
const cookieParser = require('cookie-parser');
const cors = require('cors');
const jwt = require('jsonwebtoken');
const router = express.Router();
router.use(express.json());
router.use(cookieParser());
router.use(cors());
router.get('/', (req, res) => {
res.send('Hello World!');
});

25
api/v1/auth/login.js Normal file
View file

@ -0,0 +1,25 @@
const express = require('express');
const jwt = require('jsonwebtoken');
const sha256 = require("sha256");
const { getUser } = require("../../../libs/mysql");
const router = express.Router();
router.post('/', async (req, res) => {
const {username, password} = req.body;
const user = await getUser(username);
if (!user[0]) {
return res.status(500).send({error: "wrong login informations"});
}
if (!(sha256(password) == user[0].password)) {
return res.status(500).send({error: "wrong login informations"});
}
res.status(200).send({message: "connection successful", token: jwt.sign({username: username, expiration: 20000}, process.env.JWTSecret)});
});
module.exports = router;

25
api/v1/auth/register.js Normal file
View file

@ -0,0 +1,25 @@
const express = require('express');
const sha256 = require("sha256");
const { getUser, addUser } = require("../../../libs/mysql");
const router = express.Router();
router.post('/', async (req, res) => {
const {username, name, lastname, password} = req.body;
if (!username || !name || !lastname || !password) {
return res.status(500).send({error: "invalid request"});
}
const user = await getUser(username);
if (user[0]) {
return res.status(500).send({error: "user already exist"});
}
await addUser(username, name, lastname, sha256(password));
res.status(200).send({message: "success"});
});
module.exports = router;

23
api/v1/games/getall.js Normal file
View file

@ -0,0 +1,23 @@
const express = require('express');
const jwt = require('jsonwebtoken');
const {getGames} = require("../../../libs/mysql.js")
const router = express.Router();
router.post('/', async (req, res) => {
const {token} = req.body;
let user;
try {
user = jwt.verify(token, process.env.JWTSecret);
} catch {
return res.status(500).send({error: "invalid token"});
}
const games = await getGames();
res.status(200).send(games);
});
module.exports = router;