const jwt = require("jsonwebtoken"); const { ErrorHandler } = require("../helpers/error"); const verifyToken = (req, res, next) => { const authHeader = req.header("Authorization"); // console.log("authHeader", authHeader) // Pastikan header Authorization ada dan berisi token if (!authHeader || !authHeader.startsWith("Bearer ")) { throw new ErrorHandler(401, "Token missing or invalid"); } // Ambil token dari header Authorization const token = authHeader.split(" ")[1]; try { // const decoded = jwt.decode(token, { complete: true }); // console.log("decoded", decoded) // console.log("==============================") // console.log("token", token) // console.log("process.env.SECRET", process.env.SECRET) // // console.log("==============================> ", jwt.verify(token, process.env.SECRET)) // jwt.verify(token, process.env.SECRET, (err, decoded) => { // if (err) { // console.error('Error verifying token: ==============================>', err.message); // } else { // console.log('Decoded payload: ==============================>', decoded); // } // }); const verified = jwt.verify(token, process.env.SECRET); req.tokenExtract = verified; // console.log(req.tokenExtract); req.userID = req.tokenExtract.user_id req.tenantID = req.tokenExtract.tenant_id req.roleID = req.tokenExtract.role_id req.body.userID = req.tokenExtract.user_id req.body.tenantID = req.tokenExtract.tenant_id req.query.tenantID = req.tokenExtract.tenant_id next(); } catch (error) { throw new ErrorHandler(401, error.message || "Invalid Token"); } }; module.exports = verifyToken;