25 lines
663 B
TypeScript
25 lines
663 B
TypeScript
import bcrypt from 'bcryptjs'
|
|
import jwt from 'jsonwebtoken'
|
|
|
|
const JWT_SECRET = process.env.JWT_SECRET || 'your-jwt-secret-here'
|
|
|
|
export async function hashPassword(password: string): Promise<string> {
|
|
return await bcrypt.hash(password, 12)
|
|
}
|
|
|
|
export async function verifyPassword(password: string, hashedPassword: string): Promise<boolean> {
|
|
return await bcrypt.compare(password, hashedPassword)
|
|
}
|
|
|
|
export function generateToken(payload: any): string {
|
|
return jwt.sign(payload, JWT_SECRET, { expiresIn: '7d' })
|
|
}
|
|
|
|
export function verifyToken(token: string): any {
|
|
try {
|
|
return jwt.verify(token, JWT_SECRET)
|
|
} catch (error) {
|
|
return null
|
|
}
|
|
}
|