리프레시 토큰 저장소 Redis 적용
·
개발기록/SweetBalance
이번 프로젝트에서는 인증/인가를 JWT를 통해 진행하였다. 초반 구현 단계에서는 MariaDB 내에 RefreshToken 테이블을 추가하여 리프레시 토큰을 관리하였지만 이후 Redis로 토큰 저장소를 변경하여 적용하였다.기존 RDBMS 토큰 저장소에서의 변경 이유 Redis로 리프레시 토큰 저장소를 변경한 가장 큰 이유는 TTL이었다. 리프레시 토큰의 경우 생성 시 만료 시간을 설정해주는데, RDBMS 사용 시 스케쥴러를 통해 수동으로 DB 내부 리프레시 토큰 값을 삭제시켜주어야 했기에 Redis의 TTL(Time To Live) 기능을 활용하여 Redis 내에서 자동으로 리프레시 토큰을 삭제하도록 해주었다. 추가적으로, Redis는 인메모리 저장 방식을 사용하기에 응답 속도가 RDBMS 보다 10배 ..
Spring Security와 JWT를 통한 인증/인가 로직 구현
·
개발기록/SweetBalance
학기 중에 진행했던 KUIT 동아리 스터디 활동의 연장선으로, 방학 기간 동안 프로젝트를 진행하게 되어 그 이야기를 블로그에 차근차근 담아보고자 한다.일반 로그인 & 소셜 로그인 통합 구현프로젝트 요구사항에 따라, 일반 로그인과 소셜 로그인 기능을 동시에 구현하여야 했다.개발자 유미님의 영상들을 보며 인증&인가 로직의 전반적인 구조를 잡을 수 있었다. (압도적 감사드립니다..)https://www.youtube.com/@xxxjjhhh/playlists 개별적으로 올라온 일반 로그인과 소셜 로그인의 통합과, 프로젝트 요구사항에 맞춘 로직의 추가 및 수정이 필요했다.통합 과정에서 가장 헷갈렸던 개념은, `authentication.getPrincipal()` 메소드의 반환 객체 타입이 다르다는 점이었다.A..