Spaces:
Running
Running
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" }) | |
} | |
} | |
} |