37 lines
No EOL
1.2 KiB
JavaScript
37 lines
No EOL
1.2 KiB
JavaScript
'use strict';
|
|
|
|
const util = require('util');
|
|
const owaspPasswordStrengthTest = require('owasp-password-strength-test');
|
|
|
|
function passwordValidator(t) {
|
|
const config = {
|
|
allowPassphrases: true,
|
|
maxLength: 128,
|
|
minLength: 10,
|
|
minPhraseLength: 20,
|
|
minOptionalTestsToPass: 4
|
|
};
|
|
|
|
if (t) {
|
|
config.translate = {
|
|
minLength: function (minLength) {
|
|
return t('thePasswordMustBeAtLeastMinLength', { minLength });
|
|
},
|
|
maxLength: function (maxLength) {
|
|
return t('thePasswordMustBeFewerThanMaxLength', { maxLength });
|
|
},
|
|
repeat: t('thePasswordMayNotContainSequencesOfThree'),
|
|
lowercase: t('thePasswordMustContainAtLeastOne'),
|
|
uppercase: t('thePasswordMustContainAtLeastOne-1'),
|
|
number: t('thePasswordMustContainAtLeastOneNumber'),
|
|
special: t('thePasswordMustContainAtLeastOneSpecial')
|
|
}
|
|
}
|
|
|
|
const passwordValidator = owaspPasswordStrengthTest.create();
|
|
passwordValidator.config(config);
|
|
|
|
return passwordValidator;
|
|
}
|
|
|
|
module.exports = passwordValidator; |