Tools & Libraries/redis 3

redis로 토큰 재발급과 로그아웃 구현하기 - 3 (Spring boot에 적용하기 2)

redisUtil에 기본적인 메소드들을 다 만들어 뒀으니 이제 컨트롤러와 필터에 적용시킬 차례다. 로그아웃 구현우선 사용자가 로그아웃을 요청했을 시, 시용자의 request 헤더에서 액세스 토큰을 추출하여 해당 액세스 토큰을 블랙리스트 처리한다.  @GetMapping("/member/{id}/logout")public ResponseEntity logoutKakao(@PathVariable("id") Long id, @RequestHeader("Authorization") String accessToken){ Member byId = memberService.findById(id); ClientResponse clientResponse = CallApiService.checkKakaoToke..

redis로 토큰 재발급과 로그아웃 구현하기 - 2 (Spring boot에 적용하기)

build.gradle에 의존성 추가하기// redisimplementation 'org.springframework.boot:spring-boot-starter-data-redis' Spring data redis를 추가해주었다. application.yml에 설정 추가하기 redis: pool: min-idle: 0 max-idle: 8 max-active: 8 port: 6379# host: redis host: 127.0.0.1 여기서 pool은 일정 수의 연결을 만들어 두고 사용 후 다시 반납하는 방식을 의미한다. min idle: 최소 유휴 연결 수를 의미한다. 이는 redis에 연결된 사용자가 한 명도 없을 시 유휴 연결을 하나도 만들지 않는..

redis로 토큰 재발급과 로그아웃 구현하기 - 1 (redis의 기본 개념)

프로젝트를 진행하면서 refresh token을 사용하여 access token을 재발급 하는 로직을 구현하려 했다.refresh token 테이블을 따로 만들어서 관리를 하려 했는데, 그렇게 되면 사용자가 로그인, 로그아웃, 토큰 재발급을 받을 때마다 테이블에 접근해야 하고 따로 일일이 삭제도 진행해 줘야 하니 너무 비효율적이란 생각이 들게 됐다. 그래서 유효기간을 정해놓고 잠깐 동안만 저장해 둘 수 있는 캐시를 사용해 보자 마음 먹었고 redis를 프로젝트에 적용시키게 됐다. Redis 란?redis는 in-memory database이다. 메모리에 위치한다는 것으로 redis의 속도가 빠르다는 것을 예측할 수 있다.평균 작업 속도가 1 ms 이하로 초당 수백만 건의 작업이 가능하다.메모리에 위치한다..