🔐 feat: Add Configurable Min. Password Length (#9315)

- Added support for a minimum password length defined by the MIN_PASSWORD_LENGTH environment variable.
- Updated login, registration, and reset password forms to utilize the configured minimum length.
- Enhanced validation schemas to reflect the new minimum password length requirement.
- Included tests to ensure the minimum password length functionality works as expected.
This commit is contained in:
Danny Avila 2025-08-27 16:30:56 -04:00 committed by GitHub
parent ea3b671182
commit ba424666f8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 87 additions and 9 deletions

View file

@ -1,5 +1,7 @@
const { z } = require('zod');
const MIN_PASSWORD_LENGTH = parseInt(process.env.MIN_PASSWORD_LENGTH, 10) || 8;
const allowedCharactersRegex = new RegExp(
'^[' +
'a-zA-Z0-9_.@#$%&*()' + // Basic Latin characters and symbols
@ -32,7 +34,7 @@ const loginSchema = z.object({
email: z.string().email(),
password: z
.string()
.min(8)
.min(MIN_PASSWORD_LENGTH)
.max(128)
.refine((value) => value.trim().length > 0, {
message: 'Password cannot be only spaces',
@ -50,14 +52,14 @@ const registerSchema = z
email: z.string().email(),
password: z
.string()
.min(8)
.min(MIN_PASSWORD_LENGTH)
.max(128)
.refine((value) => value.trim().length > 0, {
message: 'Password cannot be only spaces',
}),
confirm_password: z
.string()
.min(8)
.min(MIN_PASSWORD_LENGTH)
.max(128)
.refine((value) => value.trim().length > 0, {
message: 'Password cannot be only spaces',