Skip to content

Commit

Permalink
[Feat] 로그아웃 서비스 설정 (#43)
Browse files Browse the repository at this point in the history
  • Loading branch information
arinming committed Feb 8, 2024
1 parent 6a6a2aa commit 62779dd
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,10 @@
import com.ttubeog.domain.member.exception.InvalidMemberException;
import com.ttubeog.global.DefaultAssert;
import com.ttubeog.global.payload.ApiResponse;
import com.ttubeog.global.payload.Message;
import jakarta.servlet.http.HttpServletRequest;
import lombok.RequiredArgsConstructor;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
Expand All @@ -28,6 +30,7 @@ public class MemberService {
private final MemberRepository memberRepository;
private final JwtTokenProvider jwtTokenProvider;
private final RefreshTokenService refreshTokenService;
private final RedisTemplate<String, String> redisTemplate;


// 현재 유저 조회
Expand Down Expand Up @@ -113,4 +116,22 @@ public ResponseEntity<?> getMemberReissueToken(HttpServletRequest request) {
return ResponseEntity.badRequest().body(new InvalidAccessTokenExpiredException());
}
}

@Transactional
// 로그아웃
public ResponseEntity<?> deleteLogout(HttpServletRequest request) {
Long memberId = jwtTokenProvider.getMemberId(request);
deleteValueByKey(String.valueOf(memberId));

ApiResponse apiResponse = ApiResponse.builder()
.check(true)
.information(Message.builder().message("성공적으로 로그아웃 되었습니다.").build())
.build();

return ResponseEntity.ok(apiResponse);
}

public void deleteValueByKey(String key) {
redisTemplate.delete(key);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -67,10 +67,10 @@ public ResponseEntity<?> loginReissue(
@ApiResponse(responseCode = "200", description = "로그아웃 성공", content = {@Content(mediaType = "application/json", schema = @Schema(implementation = Message.class))}),
@ApiResponse(responseCode = "400", description = "로그아웃 실패", content = {@Content(mediaType = "application/json", schema = @Schema(implementation = ErrorResponse.class))}),
})
@GetMapping("/logout")
@DeleteMapping("/logout")
public ResponseEntity<?> logout(
HttpServletRequest request
) {
return null;
return memberService.deleteLogout(request);
}
}

0 comments on commit 62779dd

Please sign in to comment.