Refactor password reset logic and update UI components for better user experience

- Removed the minimum password length validation from the backend, simplifying the password reset process.
- Updated the password encryption method to utilize `EncryptUtil`, enhancing security and maintainability.
- Adjusted the `UserPasswordResetModal` component to reset alert states upon closing, improving user feedback.
- Modified the z-index values in the `Popover` and `Select` components for better layering and visibility in the UI.

These changes streamline the password reset functionality and enhance the overall user interface, ensuring a more intuitive experience for administrators.
This commit is contained in:
kjs
2026-04-02 17:22:21 +09:00
parent ce99001970
commit 9749234c30
6 changed files with 55 additions and 26 deletions

View File

@@ -3728,17 +3728,6 @@ export const resetUserPassword = async (
return;
}
// 비밀번호 길이 검증 (최소 4자)
if (newPassword.length < 4) {
res.status(400).json({
success: false,
result: false,
message: "비밀번호는 최소 4자 이상이어야 합니다.",
msg: "비밀번호는 최소 4자 이상이어야 합니다.",
});
return;
}
try {
// 1. Raw Query로 사용자 존재 여부 확인
const currentUser = await queryOne<any>(
@@ -3756,19 +3745,10 @@ export const resetUserPassword = async (
return;
}
// 2. 비밀번호 암호화 (기존 Java 로직과 동일)
// 2. 비밀번호 암호화 (EncryptUtil 사용)
let encryptedPassword: string;
try {
// EncryptUtil과 동일한 암호화 사용
const crypto = require("crypto");
const keyName = "ILJIAESSECRETKEY";
const algorithm = "aes-128-ecb";
// AES-128-ECB 암호화
const cipher = crypto.createCipher(algorithm, keyName);
let encrypted = cipher.update(newPassword, "utf8", "hex");
encrypted += cipher.final("hex");
encryptedPassword = encrypted.toUpperCase();
encryptedPassword = EncryptUtil.encrypt(newPassword);
} catch (encryptError) {
logger.error("비밀번호 암호화 중 오류 발생", {
error: encryptError,