core/utils/Jwt.ts
Eunwoo Choi b3bac55577
fix: don't show TokenExpiredError (#624)
* fix: don't show TokenExpiredError

* fix: use console.error instead of console.log
2023-08-27 22:34:04 +09:00

28 lines
810 B
TypeScript

import * as jwt from 'jsonwebtoken'
const publicPem = process.env.PUBLIC_PEM?.replace(/\\n/g, '\n')
const privateKey = process.env.PRIVATE_KEY?.replace(/\\n/g, '\n')
export function sign(payload: string | Record<string, unknown>, options?: JWTSignOption): string | null {
try {
return jwt.sign(payload, privateKey, options ? { ...options, algorithm: 'RS256', allowInsecureKeySizes: true } : { algorithm: 'RS256', allowInsecureKeySizes: true })
} catch {
return null
}
}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
export function verify(token?: string): any | null {
if(!token) return null
try {
return jwt.verify(token, publicPem)
} catch(e) {
if(e.name !== 'TokenExpiredError') console.error(e)
return null
}
}
interface JWTSignOption {
expiresIn: number | string
}