at main 662 B view raw
1import { sign, verify } from "jsonwebtoken"; 2import { User } from "./schema"; 3import { JWT_REFRESH_SECRET, JWT_SECRET, TOKEN_EXPIRY_MINUTES } from "./config"; 4 5export const generateToken = ({ id, username }: User) => 6 sign({ id, username }, JWT_SECRET, { 7 expiresIn: `${TOKEN_EXPIRY_MINUTES}m`, 8 }); 9 10export const generateRefreshToken = ({ id, username }: User) => 11 sign({ id, username }, JWT_REFRESH_SECRET, { 12 expiresIn: "7d", 13 }); 14 15export const verifyToken = (token: string, secret: string): Promise<User> => 16 new Promise((resolve, reject) => { 17 verify(token, secret, (err, user) => 18 err ? reject(err) : resolve(user as User), 19 ); 20 });