fix: 注册密码改为可选,机器注册无需密码

- RegisterRequest.password 移除 @NotBlank
- 密码为空时自动生成随机密码
- mediabot 只需 email 即可注册获得 apiKey/apiSecret
- 重装后同邮箱重新注册即可,无需记住密码
This commit is contained in:
mediabot-pt
2026-06-29 16:36:24 +08:00
parent 26c686fa69
commit 92f4ed7a2a
2 changed files with 9 additions and 2 deletions

View File

@@ -15,7 +15,6 @@ public class RegisterRequest {
@Email(message = "邮箱格式不正确")
private String email;
@NotBlank(message = "密码不能为空")
@Size(min = 6, max = 128, message = "密码长度须在 6-128 位之间")
private String password;

View File

@@ -49,7 +49,15 @@ public class AccountServiceImpl implements AccountService {
Account account = new Account();
account.setEmail(request.getEmail().toLowerCase().trim());
account.setPasswordHash(PasswordUtil.encode(request.getPassword()));
// 密码为空则自动生成(机器注册场景)
String password = request.getPassword();
if (password == null || password.isBlank()) {
byte[] pwdBytes = new byte[16];
SECURE_RANDOM.nextBytes(pwdBytes);
password = Base64.getUrlEncoder().withoutPadding().encodeToString(pwdBytes);
}
account.setPasswordHash(PasswordUtil.encode(password));
account.setDisplayName(request.getDisplayName());
account.setTrustLevel(TrustLevel.MEMBER);
account.setIsActive(true);