Skip to content

Commit 388d5a2

Browse files
authored
Merge pull request #69 from Apple-Square/develop
[feat] 회원가입 정책 변경
2 parents fb04749 + 8b4ade1 commit 388d5a2

File tree

5 files changed

+22
-15
lines changed

5 files changed

+22
-15
lines changed

src/main/java/applesquare/moment/auth/dto/UserCreateRequestDTO.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
public class UserCreateRequestDTO {
2323
@NotNull
2424
@Size(min= UserInfoService.MIN_NICKNAME_LENGTH, max=UserInfoService.MAX_NICKNAME_LENGTH)
25-
@Pattern(regexp = Validator.NICKNAME_PATTERN, message = "한글, 알파벳 대소문자, 숫자, 밑줄 (_), 하이픈 (-)만 입력 가능합니다.")
25+
@Pattern(regexp = Validator.NICKNAME_PATTERN, message = "한글, 알파벳 대소문자, 숫자, 밑줄 (_), 하이픈 (-), 연속 길이 1인 중간 공백( )만 입력 가능합니다.")
2626
private String nickname;
2727
@NotNull
2828
@Size(min= AuthService.MIN_USERNAME_LENGTH, max = AuthService.MAX_USERNAME_LENGTH)
@@ -34,7 +34,6 @@ public class UserCreateRequestDTO {
3434
private String password;
3535
private LocalDate birth;
3636
private Gender gender;
37-
@NotNull
3837
@Email
3938
private String email;
4039
private String address;

src/main/java/applesquare/moment/auth/model/UserAccount.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public class UserAccount extends BaseEntity {
2424
private String username;
2525
@Column(name = "password", nullable = false, updatable = true)
2626
private String password;
27-
@Column(name = "email", nullable = false, updatable = true)
27+
@Column(name = "email", nullable = true, updatable = true)
2828
private String email;
2929
@OneToOne(cascade = CascadeType.ALL)
3030
@JoinColumn(name="user_info_id", nullable = false, updatable = false)

src/main/java/applesquare/moment/auth/service/impl/AuthServiceImpl.java

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public class AuthServiceImpl implements AuthService {
3838
private final EmailSendService emailSendService;
3939

4040
@Value("${moment.front.reset-password}")
41-
private final String PW_RESET_URL;
41+
private String pwResetUrl;
4242

4343

4444
/**
@@ -57,14 +57,20 @@ public void createUser(UserCreateRequestDTO userCreateRequestDTO, String emailSt
5757
if(userAccountRepository.existsByUsername(username)){
5858
throw new DuplicateDataException("이미 존재하는 아이디입니다. (id = "+username+")");
5959
}
60-
if(userAccountRepository.existsByEmail(email)){
61-
throw new DuplicateDataException("이미 사용 중인 이메일입니다. (email = "+email+")");
62-
}
6360

64-
// 이메일 인증 상태 검사
65-
String stateMetaData=stateService.getMetaData(emailState);
66-
if(stateMetaData==null || !stateMetaData.equals(email)){
67-
throw new EmailValidationException("인증 상태를 확인할 수 없습니다.");
61+
// 이메일이 입력된 경우,
62+
if(email!=null){
63+
// 이메일 인증 상태 검사
64+
String stateMetaData=stateService.getMetaData(emailState);
65+
if(stateMetaData==null || !stateMetaData.equals(email)){
66+
throw new EmailValidationException("이메일 인증 상태를 확인할 수 없습니다.");
67+
}
68+
69+
// 중복 검사
70+
if(userAccountRepository.existsByEmail(email)){
71+
stateService.delete(emailState);
72+
throw new DuplicateDataException("이미 사용 중인 이메일입니다. (email = "+email+")");
73+
}
6874
}
6975

7076
// 주소 유효성 검사 (실제로 존재하는 주소인지 검사)
@@ -105,7 +111,9 @@ public void createUser(UserCreateRequestDTO userCreateRequestDTO, String emailSt
105111
userAccountRepository.save(userAccount);
106112

107113
// 이메일 인증 상태 제거하기 (일회용)
108-
stateService.delete(emailState);
114+
if(email!=null){
115+
stateService.delete(emailState);
116+
}
109117
}
110118

111119
/**
@@ -135,7 +143,7 @@ public void sendAccountRecoveryEmail(String email){
135143
"안녕하세요.<br/><br/>" +
136144
"회원님의 아이디는 " + username + " 입니다.<br/><br/>" +
137145
"혹시 비밀번호를 모르시겠다면, 아래 링크를 이용해서 초기화해주세요.<br/><br/>" +
138-
"<a href=\""+PW_RESET_URL+"?token=" + token + "\">비밀번호 재설정하러 가기</a>"
146+
"<a href=\""+pwResetUrl+"?token=" + token + "\">비밀번호 재설정하러 가기</a>"
139147
)
140148
.useHtml(true)
141149
.build();

src/main/java/applesquare/moment/util/NicknameGenerator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,6 @@ public class NicknameGenerator {
2727
public static String generateNickname(){
2828
String first=FIRST_PART[random.nextInt(FIRST_PART.length)];
2929
String second=SECOND_PART[random.nextInt(SECOND_PART.length)];
30-
return first+"_"+second;
30+
return first+" "+second;
3131
}
3232
}

src/main/java/applesquare/moment/util/Validator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import java.util.Set;
99

1010
public class Validator {
11-
public static final String NICKNAME_PATTERN="^[가-힣A-Za-z0-9_-]+$";
11+
public static final String NICKNAME_PATTERN="^(?! )[가-힣A-Za-z0-9_-]+( [가-힣A-Za-z0-9_-]+)*(?<! )$";
1212
public static final String USERNAME_PATTERN="^[A-Za-z0-9_-]+$";
1313
public static final String PASSWORD_PATTERN="^(?=.*[A-Z])(?=.*[a-z])(?=.*\\d)(?=.*[!\\?@#\\$%\\^&])[A-Za-z\\d!\\?@#\\$%\\^&]+$";
1414

0 commit comments

Comments
 (0)