Skip to content

Commit

Permalink
Merge pull request #38 from 28th-meetup/fix/authApi
Browse files Browse the repository at this point in the history
Fix/auth api
  • Loading branch information
summit45 committed Nov 16, 2023
2 parents a6600a4 + c444482 commit f079bd8
Show file tree
Hide file tree
Showing 9 changed files with 59 additions and 10 deletions.
5 changes: 3 additions & 2 deletions src/main/java/com/kusitms/jipbap/auth/AuthService.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import com.kusitms.jipbap.auth.exception.*;
import com.kusitms.jipbap.security.jwt.JwtTokenProvider;
import com.kusitms.jipbap.security.jwt.TokenInfo;
import com.kusitms.jipbap.user.CountryPhoneCode;
import com.kusitms.jipbap.user.Role;
import com.kusitms.jipbap.user.User;
import com.kusitms.jipbap.user.UserRepository;
Expand Down Expand Up @@ -60,7 +61,7 @@ public void signUp(SignUpRequestDto dto) {
.email(dto.getEmail())
.password(passwordEncoder.encode(dto.getPassword()))
.username(dto.getUsername())
.address(dto.getAddress())
.countryPhoneCode(dto.getCountryPhoneCode())
.phoneNum(dto.getPhoneNum())
.role(dto.getRole())
.refreshToken(null)
Expand Down Expand Up @@ -151,7 +152,7 @@ public SignInResponseDto kakaoAutoSignIn(KakaoProfileDto profile) {
kakaoUser.getEmail(),
kakaoUser.getPassword(),
kakaoUser.getUsername(),
kakaoUser.getAddress(),
CountryPhoneCode.KOREA, // 카카오
kakaoUser.getPhoneNum(),
Role.USER,
kakaoUser.getImage()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.kusitms.jipbap.auth.dto;

import com.kusitms.jipbap.user.CountryPhoneCode;
import com.kusitms.jipbap.user.Role;
import lombok.AllArgsConstructor;
import lombok.Data;
Expand Down
12 changes: 5 additions & 7 deletions src/main/java/com/kusitms/jipbap/auth/dto/SignUpRequestDto.java
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
package com.kusitms.jipbap.auth.dto;

import com.kusitms.jipbap.user.CountryPhoneCode;
import com.kusitms.jipbap.user.Role;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.*;

import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;

@Data
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class SignUpRequestDto {
Expand All @@ -20,12 +20,10 @@ public class SignUpRequestDto {
@NotBlank
private String username;
@NotBlank
private String address;
private CountryPhoneCode countryPhoneCode;
@NotBlank
private String phoneNum;
@NotBlank
private Role role;

private String imageUrl;

}
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,8 @@ public WebSecurityCustomizer webSecurityCustomizer() {
"/auth/**",
"/ws/**", //ws://localhost:8080/ws/chat
"/ws-stomp/**",
"/addresses/**"
"/addresses/**",
"/users/nickname"
);
}
}
17 changes: 17 additions & 0 deletions src/main/java/com/kusitms/jipbap/user/CountryPhoneCode.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package com.kusitms.jipbap.user;

public enum CountryPhoneCode {
KOREA("+82"),
USA("+1"),
CANADA("+1");

private String code;

CountryPhoneCode(String code) {
this.code = code;
}

public String getCode() {
return code;
}
}
3 changes: 3 additions & 0 deletions src/main/java/com/kusitms/jipbap/user/User.java
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,9 @@ public class User extends DateEntity {

private String image; //프로필 사진

@Enumerated(EnumType.STRING)
private CountryPhoneCode countryPhoneCode; //국가 전화번호 코드

private String phoneNum;

@Enumerated(EnumType.STRING)
Expand Down
8 changes: 8 additions & 0 deletions src/main/java/com/kusitms/jipbap/user/UserController.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,11 @@
import com.kusitms.jipbap.common.response.CommonResponse;
import com.kusitms.jipbap.security.Auth;
import com.kusitms.jipbap.security.AuthInfo;
import com.kusitms.jipbap.user.dto.NicknameValidateRequest;
import io.swagger.v3.oas.annotations.Operation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

Expand All @@ -22,5 +24,11 @@ public CommonResponse<String> logout(@Auth AuthInfo authInfo) {
userService.logout(authInfo.getEmail());
return new CommonResponse<>("로그아웃 성공");
}

@Operation(summary = "닉네임 중복 여부 확인")
@PostMapping("/nickname")
public CommonResponse<String> checkNicknameIsDuplicate(@RequestBody NicknameValidateRequest dto) {
return new CommonResponse<>(userService.checkNicknameIsDuplicate(dto.getNickname()));
}
}

6 changes: 6 additions & 0 deletions src/main/java/com/kusitms/jipbap/user/UserService.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.kusitms.jipbap.user;

import com.kusitms.jipbap.auth.exception.InvalidEmailException;
import com.kusitms.jipbap.auth.exception.UsernameExistsException;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
Expand All @@ -19,5 +20,10 @@ public void logout(String email) {
User user = userRepository.findByEmail(email).orElseThrow(()->new InvalidEmailException("회원정보가 존재하지 않습니다."));
user.updateRefreshToken(null);
}

public String checkNicknameIsDuplicate(String nickname){
if(userRepository.existsByUsername(nickname)) throw new UsernameExistsException("이미 존재하는 닉네임입니다.");
return "사용 가능한 닉네임입니다.";
}
}

Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.kusitms.jipbap.user.dto;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class NicknameValidateRequest {
private String nickname;
}

0 comments on commit f079bd8

Please sign in to comment.