Files
pagodera/lib/auth/password.ts
T
2025-11-11 03:08:36 -03:00

43 lines
1016 B
TypeScript

/**
* Módulo de hash e verificação de senhas
* Usa bcrypt para hashing seguro
*/
import bcrypt from "bcrypt";
const SALT_ROUNDS = 12;
/**
* Gera hash de senha usando bcrypt
* @param password - Senha em texto plano
* @returns Hash da senha
*/
export async function hashPassword(password: string): Promise<string> {
try {
const hash = await bcrypt.hash(password, SALT_ROUNDS);
return hash;
} catch (error) {
console.error("❌ Erro ao gerar hash de senha:", error);
throw new Error("Falha ao processar senha");
}
}
/**
* Compara senha em texto plano com hash
* @param password - Senha em texto plano
* @param hash - Hash armazenado
* @returns true se a senha corresponde, false caso contrário
*/
export async function comparePassword(
password: string,
hash: string,
): Promise<boolean> {
try {
const match = await bcrypt.compare(password, hash);
return match;
} catch (error) {
console.error("❌ Erro ao comparar senha:", error);
return false;
}
}