joclud-app/api/v1/admin/verifyUser.js
2024-06-06 14:35:19 +02:00

43 lines
No EOL
1.1 KiB
JavaScript

const express = require('express');
const jwt = require('jsonwebtoken');
const {setVerified, getUser} = require("../../../libs/mysql.js")
const router = express.Router();
router.post('/', async (req, res) => {
const {token, username} = req.body;
if (!token) {
return res.status(400).send({error: "invalid token"});
}
try {
const user = jwt.verify(token, process.env.JWTSecret);
if (user.expiration < Date.now()) {
return res.status(400).send({error: "token expired"});
}
if (!user.user.admin) {
return res.status(400).send({error: "unauthorized"});
}
} catch {
return res.status(400).send({error: "invalid token"});
}
const user = await getUser(username);
if (!user[0]) {
return res.status(400).send({error: "invalid userid"});
}
if (user[0].verified) {
return res.status(400).send({error: "user already verified"});
}
await setVerified(username);
res.status(200).send({message: "user verified"});
});
module.exports = router;