const jwt = require("jsonwebtoken");
const config = require("../config/auth.config");

// Verifikace tokenu
// Vyžádání si tokenu -> následná verifikace, porovnání s klíčem z config.secret
// Pokud je verifikace v pořádku pošle zprávu na frontend, že token je validní
const verifyToken = (req, res, next) => {
	const token = req.headers["x-access-token"];

	if (!token) {
		return res.send({ message: "Token nebyl poskytnut!" });
	}

	jwt.verify(token, config.secret, (err, decoded) => {
		if (err) {
			return res.send({
				message: "Neoprávněné!",
				error: err.message,
			});
		} else {
			res.send({ message: "Token je validní, payload:", decoded });
		}
		req.userId = decoded.id;
		next();
	});
};

const authJwt = {
	verifyToken,
};
module.exports = authJwt;
