21 lines
623 B
TypeScript
21 lines
623 B
TypeScript
// src/utils/authUtils.ts
|
|
import zxcvbn from 'zxcvbn';
|
|
|
|
/**
|
|
* Validates the strength of a password using zxcvbn.
|
|
* @param password The password to validate.
|
|
* @returns An object with `isValid` and a feedback message.
|
|
*/
|
|
export function validatePasswordStrength(password: string): {
|
|
isValid: boolean;
|
|
feedback: string;
|
|
} {
|
|
const result = zxcvbn(password);
|
|
// Score: 0-4. We require at least 3.
|
|
if (result.score < 3) {
|
|
const suggestions = result.feedback.suggestions.join(' ');
|
|
return { isValid: false, feedback: `Password is too weak. ${suggestions}` };
|
|
}
|
|
return { isValid: true, feedback: '' };
|
|
}
|