增加邮箱,用户名,密码验证
This commit is contained in:
@ -28,7 +28,7 @@ public enum ResultCode {
|
|||||||
// 注册相关
|
// 注册相关
|
||||||
// USER_REGISTRATION_SUCCESS(3000, "用户注册成功"),
|
// USER_REGISTRATION_SUCCESS(3000, "用户注册成功"),
|
||||||
USER_EMAIL_ALREADY_EXISTS(3001, "Email already exists"),
|
USER_EMAIL_ALREADY_EXISTS(3001, "Email already exists"),
|
||||||
// USER_USERNAME_ALREADY_EXISTS(3002, "Username"),
|
USER_EMAIL_NOT_VALID(3002, "Email is not valid"),
|
||||||
USER_PASSWORD_TOO_SHORT(3003, "password too short"),
|
USER_PASSWORD_TOO_SHORT(3003, "password too short"),
|
||||||
USER_PASSWORD_TOO_WEAK(3004, "password too weak"),
|
USER_PASSWORD_TOO_WEAK(3004, "password too weak"),
|
||||||
USER_REGISTRATION_FAILED(3005, "User registration failed"),
|
USER_REGISTRATION_FAILED(3005, "User registration failed"),
|
||||||
|
@ -24,7 +24,6 @@ import co.jp.app.service.UserService;
|
|||||||
import jakarta.validation.Valid;
|
import jakarta.validation.Valid;
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
|
|
||||||
public class UserController {
|
public class UserController {
|
||||||
|
|
||||||
private final UserService userService;
|
private final UserService userService;
|
||||||
|
@ -1,9 +1,17 @@
|
|||||||
package co.jp.app.dto;
|
package co.jp.app.dto;
|
||||||
|
|
||||||
|
import jakarta.validation.constraints.Email;
|
||||||
|
import jakarta.validation.constraints.NotBlank;
|
||||||
|
import jakarta.validation.constraints.Size;
|
||||||
|
|
||||||
public class LoginDto {
|
public class LoginDto {
|
||||||
|
|
||||||
|
@NotBlank(message = "邮箱不能为空")
|
||||||
|
@Email(message = "邮箱格式不正确,请输入有效的邮箱地址")
|
||||||
private String email;
|
private String email;
|
||||||
|
|
||||||
|
@NotBlank(message = "密码不能为空")
|
||||||
|
@Size(min = 6, max = 30, message = "密码长度必须在6到30位之间")
|
||||||
private String password;
|
private String password;
|
||||||
|
|
||||||
public String getEmail() {
|
public String getEmail() {
|
||||||
|
@ -1,11 +1,26 @@
|
|||||||
package co.jp.app.dto;
|
package co.jp.app.dto;
|
||||||
|
|
||||||
|
import jakarta.validation.constraints.Email;
|
||||||
|
import jakarta.validation.constraints.NotBlank; // 或 javax.validation.constraints.NotBlank
|
||||||
|
import jakarta.validation.constraints.Pattern;
|
||||||
|
import jakarta.validation.constraints.Size;
|
||||||
|
|
||||||
public class RegistrationDto {
|
public class RegistrationDto {
|
||||||
|
|
||||||
|
//注:username可以为空
|
||||||
|
@Size(min = 2, max = 20, message = "用户名长度必须在2到20个字符之间")
|
||||||
|
@Pattern(
|
||||||
|
regexp = "^[a-zA-Z\\p{script=Han}]+$",
|
||||||
|
message = "用户名只能包含大小写英文字母和汉字,不能使用数字和标点符号"
|
||||||
|
)
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
|
@NotBlank(message = "邮箱不能为空")
|
||||||
|
@Email(message = "邮箱格式不正确,请输入有效的邮箱地址")
|
||||||
private String email;
|
private String email;
|
||||||
|
|
||||||
|
@NotBlank(message = "密码不能为空")
|
||||||
|
@Size(min = 6, max = 30, message = "密码长度必须在6到30位之间")
|
||||||
private String password;
|
private String password;
|
||||||
|
|
||||||
public String getName() {
|
public String getName() {
|
||||||
|
@ -34,15 +34,6 @@ public class UserService implements UserDetailsService {
|
|||||||
@Transactional
|
@Transactional
|
||||||
public UserEntity registerNewUser(@NotNull RegistrationDto registrationDto) throws BusinessException {
|
public UserEntity registerNewUser(@NotNull RegistrationDto registrationDto) throws BusinessException {
|
||||||
|
|
||||||
if (userRepository.existsByEmail(registrationDto.getEmail())) {
|
|
||||||
throw new BusinessException(ResultCode.USER_EMAIL_ALREADY_EXISTS,"error: Email" + registrationDto.getEmail() + " had been used");
|
|
||||||
}
|
|
||||||
|
|
||||||
//密码最短6位限制
|
|
||||||
if (registrationDto.getPassword() == null || registrationDto.getPassword().length() < 6) {
|
|
||||||
throw new BusinessException(ResultCode.USER_PASSWORD_TOO_SHORT);
|
|
||||||
}
|
|
||||||
|
|
||||||
UserEntity newUser = new UserEntity();
|
UserEntity newUser = new UserEntity();
|
||||||
newUser.setName(registrationDto.getName());
|
newUser.setName(registrationDto.getName());
|
||||||
newUser.setEmail(registrationDto.getEmail());
|
newUser.setEmail(registrationDto.getEmail());
|
||||||
|
Reference in New Issue
Block a user