modarb-be / src /helpers /jwt.helper.ts
youssefkatry907
User registeration & login
a6fbb8d
raw
history blame
1.03 kB
import jwt from "jsonwebtoken";
export class jwtHelper {
static generateToken(payload: any) {
return jwt.sign(payload, process.env.ACCESS_TOKEN_SECRET || "secret", { expiresIn: '30d' })
}
static verifyToken(role: any) {
return (req: any, res: any, next: any) => {
let authHeader = req.headers['authorization']
const token = authHeader && authHeader.split(" ")[1]
if (token) {
jwt.verify(token, process.env.ACCESS_TOKEN_SECRET || "secret", (err: any, tokenData: any) => {
if (err) return res.status(403).json({ success: false, code: 403, message: "Invalid Token!" })
if (!role.includes(tokenData.role)) return res.status(401).json({ success: false, code: 401, message: "Unauthorized" })
req.tokenData = tokenData;
next();
})
} else return res.status(401).json({ success: false, code: 401, message: "Unauthorized" })
}
}
}