Skip to content

Commit

Permalink
refactor: (#29) 네이밍, 상수화, 위치변경 등의 작업 수행
Browse files Browse the repository at this point in the history
  • Loading branch information
jeomxon committed Jul 19, 2023
1 parent 9361516 commit 45ef172
Show file tree
Hide file tree
Showing 7 changed files with 23 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import com.votogether.domain.auth.service.AuthService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.responses.ApiResponses;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
Expand All @@ -19,11 +20,14 @@ public class AuthController {
private final AuthService authService;

@Operation(summary = "카카오 로그인 하기", description = "카카오 계정으로 로그인을 한다.")
@ApiResponse(responseCode = "200", description = "로그인 성공")
@ApiResponses({
@ApiResponse(responseCode = "200", description = "카카오 로그인 성공"),
@ApiResponse(responseCode = "400", description = "올바르지 않은 요청"),
@ApiResponse(responseCode = "401", description = "올바르지 않은 인증코드")
})
@GetMapping("/auth/kakao/callback")
public ResponseEntity<LoginResponse> loginByKakao(@RequestParam("code") final String code) {
final String token = authService.register(code);
return ResponseEntity.ok(new LoginResponse(token));
return ResponseEntity.ok(authService.register(code));
}

}
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
package com.votogether.domain.auth.service;

import com.votogether.domain.auth.dto.KakaoMemberResponse;
import com.votogether.domain.auth.dto.LoginResponse;
import com.votogether.domain.member.entity.Member;
import com.votogether.domain.member.service.MemberService;
import com.votogether.global.jwt.TokenProcessor;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@RequiredArgsConstructor
@Service
Expand All @@ -15,14 +17,15 @@ public class AuthService {
private final MemberService memberService;
private final TokenProcessor tokenProcessor;

public String register(final String code) {
@Transactional
public LoginResponse register(final String code) {
final String accessToken = kakaoOAuthClient.getAccessToken(code);
final KakaoMemberResponse response = kakaoOAuthClient.getMemberInfo(accessToken);

final Member member = Member.createKakaoMember(response);
final Member member = Member.from(response);
final Member registeredMember = memberService.register(member);

return tokenProcessor.generateToken(registeredMember);
final String token = tokenProcessor.generateToken(registeredMember);
return new LoginResponse(token);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ private Member(
this.point = point;
}

public static Member createKakaoMember(final KakaoMemberResponse response) {
public static Member from(final KakaoMemberResponse response) {
final NicknameNumberGenerator nicknameNumberGenerator = new NicknameNumberGenerator();
return Member.builder()
.nickname("익명의 손님" + nicknameNumberGenerator.generate())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@Transactional(readOnly = true)
@RequiredArgsConstructor
@Service
public class MemberService {
Expand All @@ -23,6 +22,7 @@ public Member register(final Member member) {
return maybeMember.orElseGet(() -> memberRepository.save(member));
}

@Transactional(readOnly = true)
public Member findById(final Long memberId) {
return memberRepository.findById(memberId)
.orElseThrow(() -> new IllegalArgumentException("해당 Id를 가지 회원은 존재하지 않습니다."));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@
import org.springframework.stereotype.Component;
import org.springframework.web.filter.OncePerRequestFilter;

@Component
@RequiredArgsConstructor
@Component
public class JwtAuthenticationFilter extends OncePerRequestFilter {

private static final List<String> ALLOWED_URIS = List.of(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@
@Component
public class TokenProcessor {

private static final String BEARER_TOKEN_PREFIX = "Bearer ";

private final Key key;
private final int tokenExpirationTime;
private final ObjectMapper objectMapper;
Expand All @@ -49,7 +51,7 @@ public String generateToken(final Member member) {
}

public String resolveToken(final String token) {
if (StringUtils.hasText(token) && token.startsWith("Bearer ")) {
if (StringUtils.hasText(token) && token.startsWith(BEARER_TOKEN_PREFIX)) {
return token.split(" ")[1];
}
return null;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.BDDMockito.given;

import com.votogether.domain.auth.dto.LoginResponse;
import com.votogether.domain.auth.service.AuthService;
import com.votogether.domain.member.service.MemberService;
import com.votogether.global.jwt.TokenProcessor;
Expand Down Expand Up @@ -43,8 +44,9 @@ void setUp() {
void loginWithKakao() {
// given
String accessToken = "abcdefg";
LoginResponse response = new LoginResponse(accessToken);

given(authService.register(any())).willReturn(accessToken);
given(authService.register(any())).willReturn(response);

// when
String responseBody = RestAssuredMockMvc
Expand Down

0 comments on commit 45ef172

Please sign in to comment.