调整接单密码强度规则

This commit is contained in:
yml2213
2026-08-20 16:19:44 +08:00
parent 218ee1577e
commit d2512ccb6b
5 changed files with 30 additions and 31 deletions
@@ -1483,7 +1483,7 @@ export function validateWorkerUsername(username: string) {
export function validateWorkerPassword(password: string) {
if (!isWorkerPasswordStrong(password)) {
throw createHttpError('接单密码至少 6 位,且必须包含大写字母、小写字母数字和标点符号', {
throw createHttpError('接单密码至少 8 位,且必须包含英文字母数字', {
statusCode: 400,
errorCode: 'worker_password_invalid',
})
@@ -1491,13 +1491,7 @@ export function validateWorkerPassword(password: string) {
}
export function isWorkerPasswordStrong(password: string): boolean {
return (
password.length >= 6 &&
/[A-Z]/.test(password) &&
/[a-z]/.test(password) &&
/\d/.test(password) &&
/[\p{P}\p{S}]/u.test(password)
)
return password.length >= 8 && /[a-zA-Z]/.test(password) && /\d/.test(password)
}
export function normalizeSessionVersion(value: unknown): number {
@@ -154,14 +154,14 @@ test('assertWorkerLoginAllowed allows active workers', () => {
assert.doesNotThrow(() => assertWorkerLoginAllowed(buildWorkerUserRow()))
})
test('接单密码必须包含大小写字母数字和标点符号', () => {
assert.equal(isWorkerPasswordStrong('Aa1234!'), true)
assert.equal(isWorkerPasswordStrong('aa1234!'), false)
assert.equal(isWorkerPasswordStrong('AA1234!'), false)
assert.equal(isWorkerPasswordStrong('Aaabcd!'), false)
assert.equal(isWorkerPasswordStrong('Aa123456'), false)
assert.equal(isWorkerPasswordStrong('Aa1!'), false)
assert.throws(() => validateWorkerPassword('Aa123456'), { errorCode: 'worker_password_invalid' })
test('接单密码至少八位且必须包含英文字母数字', () => {
assert.equal(isWorkerPasswordStrong('abc12345'), true)
assert.equal(isWorkerPasswordStrong('ABC12345'), true)
assert.equal(isWorkerPasswordStrong('12345678'), false)
assert.equal(isWorkerPasswordStrong('abcdefgh'), false)
assert.equal(isWorkerPasswordStrong('abc1234'), false)
assert.doesNotThrow(() => validateWorkerPassword('abc12345'))
assert.throws(() => validateWorkerPassword('12345678'), { errorCode: 'worker_password_invalid' })
})
test('排行榜打手名称仅展示首字符', () => {