14 lines
432 B
JavaScript
14 lines
432 B
JavaScript
import bcrypt from "bcryptjs";
|
|
import * as argon2 from "argon2";
|
|
export async function hashPassword(password) {
|
|
return argon2.hash(password);
|
|
}
|
|
export async function comparePassword(password, hash) {
|
|
if (isOldAlgorithm(hash)) return bcrypt.compare(password, hash);
|
|
return argon2.verify(hash, password);
|
|
}
|
|
export function isOldAlgorithm(hash) {
|
|
// bcrypt hashes start with $2[ab]$
|
|
return hash.startsWith("$2");
|
|
}
|