import jwt, { Secret, SignOptions } from "jsonwebtoken"; export function signToken(payload: object, signingKey: Secret, options: SignOptions = {}) { return jwt.sign(payload, signingKey, { ...{ algorithm: "RS256" }, ...options, }); } export function verifyToken(token: string, signingKey: Secret) { return jwtVerify(token, signingKey) ?? undefined; } const jwtVerify = (token: string, key: Secret): any => jwt.verify(token, key, (err: any, decoded: any) => (!err && decoded) || null);