Skip to content

Commit

Permalink
Merge pull request #189 from SKY-HORSE-MAN-POWER/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
LEEForgiveness authored Jun 11, 2024
2 parents 67e0420 + fb20b98 commit 6e58be3
Show file tree
Hide file tree
Showing 4 changed files with 50 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,18 @@ public interface MemberService {

void snsAddMember(SnsMemberAddRequestDto snsMemberAddRequestDto);

TokenResponseDto snsLogin(MemberSnsLoginRequestDto memberSnsLoginRequestDto);
TokenResponseDto snsLogin(MemberSnsLoginRequestDto memberSnsLoginRequestDto);

MemberDetailResponseDto findMember(String uuid);

SellerMemberDetailResponseDto findSellerMember(SellerMemberDetailRequestDto sellerMemberDetailRequestDto);
SellerMemberDetailResponseDto findSellerMember(
SellerMemberDetailRequestDto sellerMemberDetailRequestDto);

void updateMember(String uuid, MemberUpdateRequestDto memberRequestDto);

void removeMember(String uuid);

void addReport(String uuid, MemberReportRequestDto memberReportRequestDto);

TokenResponseDto tokenReIssue(String receiveToken, String uuid);
}
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,27 @@ public TokenResponseDto snsLogin(MemberSnsLoginRequestDto memberSnsLoginRequestD
.build();
}

//토큰 재발급
@Override
public TokenResponseDto tokenReIssue(String receiveToken, String uuid) {
Member member = memberRepository.findByUuid(uuid)
.orElseThrow(() -> new CustomException(ResponseStatus.USER_NOT_FOUND));
if (member.isTerminationStatus()) {
throw new CustomException(ResponseStatus.WITHDRAWAL_MEMBERS);
}
if (refreshTokenCertification.hasKey(uuid) && refreshTokenCertification.getRefreshToken(
uuid).equals(receiveToken)) {
String token = createToken(member);
return TokenResponseDto.builder()
.accessToken(token)
.refreshToken(null)
.uuid(member.getUuid())
.build();
} else {
throw new CustomException(ResponseStatus.TOKEN_NOT_VALID);
}
}

//회원정보 조회
@Override
public MemberDetailResponseDto findMember(String uuid) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,14 @@ public class RefreshTokenCertification {
private long REFRESH_TOKEN_EXPIRATION_TIME;

private final String PREFIX = "REFRESH:";
private final long EXPIRE_TIME = 259200000;

private final StringRedisTemplate stringRedisTemplate;

//refreshToken을 받아서 redis에 저장
public void saveRefreshToken(String uuid, String refreshToken) {
try {
stringRedisTemplate.opsForValue()
.set(uuid, refreshToken, Duration.ofSeconds(EXPIRE_TIME));
.set(uuid, refreshToken, Duration.ofSeconds(REFRESH_TOKEN_EXPIRATION_TIME));
log.info("Successfully saved refreshToken to Redis: uuid={}, refreshToken={}", uuid,
refreshToken);
} catch (Exception e) {
Expand All @@ -33,4 +32,14 @@ public void saveRefreshToken(String uuid, String refreshToken) {
throw e;
}
}

//uuid로 refreshToken을 가져옴
public String getRefreshToken(String uuid) {
return stringRedisTemplate.opsForValue().get(uuid);
}

//uuid로 refreshToken가 있는 지 확인
public boolean hasKey(String uuid) {
return Boolean.TRUE.equals(stringRedisTemplate.hasKey(uuid));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -58,4 +58,17 @@ public ResponseEntity<SuccessResponse<Object>> login(
.header("uuid", tokenResponseDto.getUuid())
.body(new SuccessResponse<>(null));
}

@GetMapping("/reissue")
@Operation(summary = "토큰 재발급", description = "토큰 재발급")
public ResponseEntity<SuccessResponse<Object>> reissue(@RequestHeader String uuid,
@RequestHeader String refreshToken) {
TokenResponseDto tokenResponseDto = memberService.tokenReIssue(refreshToken, uuid);

return ResponseEntity.ok()
.header(HttpHeaders.AUTHORIZATION, tokenResponseDto.getAccessToken())
.header("RefreshToken", refreshToken)
.header("uuid", tokenResponseDto.getUuid())
.body(new SuccessResponse<>(null));
}
}

0 comments on commit 6e58be3

Please sign in to comment.