budibase/packages/backend-core/src/security/auth.ts

30 lines
703 B
TypeScript
Raw Normal View History

2024-01-02 16:58:47 +01:00
import { env } from ".."
2024-01-02 16:38:58 +01:00
export const PASSWORD_MIN_LENGTH = 8
export const PASSWORD_MAX_LENGTH = 512
2024-01-02 12:29:27 +01:00
export function validatePassword(
password: string
): { valid: true } | { valid: false; error: string } {
2024-01-02 16:58:47 +01:00
if (env.isDev() && !env.isTest() && password) {
// We accept any password while on development
return { valid: true }
}
2024-01-02 16:38:58 +01:00
if (!password || password.length < PASSWORD_MIN_LENGTH) {
2024-01-02 13:22:38 +01:00
return {
valid: false,
error: "Password invalid. Minimum eight characters.",
}
2024-01-02 12:29:27 +01:00
}
2024-01-02 16:38:58 +01:00
if (password.length > PASSWORD_MAX_LENGTH) {
2024-01-02 15:16:09 +01:00
return {
valid: false,
2024-01-02 16:38:58 +01:00
error: `Password invalid. Maximum ${PASSWORD_MAX_LENGTH} characters.`,
2024-01-02 15:16:09 +01:00
}
}
2024-01-02 12:29:27 +01:00
return { valid: true }
}