import { sign, verify } from "jsonwebtoken"; import { User } from "./schema"; import { JWT_REFRESH_SECRET, JWT_SECRET, TOKEN_EXPIRY_MINUTES } from "./config"; export const generateToken = ({ id, username }: User) => sign({ id, username }, JWT_SECRET, { expiresIn: `${TOKEN_EXPIRY_MINUTES}m`, }); export const generateRefreshToken = ({ id, username }: User) => sign({ id, username }, JWT_REFRESH_SECRET, { expiresIn: "7d", }); export const verifyToken = (token: string, secret: string): Promise => new Promise((resolve, reject) => { verify(token, secret, (err, user) => err ? reject(err) : resolve(user as User), ); });