목록개발자/workflow 리팩토링 프로젝트(SpringBoot,JPA,MySQL) (24)
개발자
spring security와 jwt 를 이용하여 로그인을 구현하고 토큰 재발급, redis를 활용한 로그아웃, 최신토큰 사용하기 등등 다 구현을 해보았는데요. reids활용한 구현부분은 flow를 정리해놓았는데 jwt를 이용한 로그인와 토급재발급의 동작 flow에 대한 설명이 부족한것 같아서 추가로 포스팅을 작성하려고 합니다. 이 포스팅은 jwt를 이용한 로그인과 토큰 재발급의 동작 흐름에 관한 글이기 때문에 구현방법은 이전포스팅들을 참고해주시기 바랍니다. 들어가기 앞서 OncePerRequestFilter가 아니더라도 일반적인 GenericFilterBean을 상속받아도 무관합니다. (OncePerRequestFilter가 이미 GenericFilterBean를 상속받고 있기 때문.) Filter 작..

프로젝트 진행중 loval,dev,test 환경으로 DB를 분리해야 할 일이 생겼습니다. test 코드 수행이 끝난 뒤 모든 데이터가 지워져서 DB가 클린상태가 되어야 하는데 그렇게 되면 API 테스트시 DB의 기존 데이터들이 모두 삭제되는 문제가 발생했습니다. 때문에 TEST용 DB를 따로 분리해주기로 했습니다. aplication.yml을 분리해서 사용할 건데요, aplication.yml이란 무엇일까요? aplication.yml 이란? application.yml은 주로 스프링 부트(Spring Boot) 애플리케이션에서 사용되는 설정 파일입니다. 스프링 부트는 자바 기반의 웹 애플리케이션을 쉽게 개발할 수 있도록 도와주는 프레임워크로, 이를 통해 애플리케이션의 설정을 관리할 수 있습니다. app..

이전 포스팅에 이어서 이번에는 redis를 이용해서 로그아웃을 구현해 보겠습니다. balckList를 사용한다고 하는데요 말은 blackList지만 실제로 사용할 때는 redis에 해당토큰을 set해서 blackList로 등록해주고 리소스 접근시 balckList에 해당 토큰이있다면 로그아웃 처리되었기 때문에 리소스 접근이 안되는 것입니다. flow를 살펴봅시다. 로그아웃 flow는 이렇게 진행됩니다. 핵심은 accessToken을 BalckList에 등록해주고 refreshToken을 삭제해서 해당 토큰으로 로그인할 수 없도록 로그아웃처리를 해줍니다. 그래서 해당 리소스에 요청할때 로그아웃처리된 토큰이 온다면 redis에서 blackList를 확인하여 해당 토큰이 있다면 로그아웃된 토큰이므로 리소스에 ..

JWT를 구현하는 중에 문제가 생겼다. JWT는 만료시킬 수 없어 재사용하거나 계속 발급해주는 방법이있는데 재사용은 보안문제가 있어 로그인 API접근시 마다 새로운 토큰을 발급해주는 방법을 사용했었다. 나는 accessToken과 refreshToekn을 모두 재발급 해주는데 accessToken만료시에도 refreshToken 검증후 accessToken을 재발급 해주는데 이때 refreshToken도 함께 재발급이 된다. 그렇다면 계속해서 발급하는 토큰들 어떻게 되는거지? 유효시간이 만료되서 사용불가능하게 되지않으면 이전에 발급한 토큰들로도 계속 로그인이 가능하다. accessToken의 경우 유효시간이 짧지만 refreshToken의 경우는 유효기간이 길어 문제가 될 수 있다. 그렇다고 refres..

저는 이번 프로젝트를 JWT 방식을 사용해서 진행했습니다. 그렇다면 왜 JWT를 적용했는지 알아봐야겠죠. JWT는 토큰 기반 인증입니다. 토큰 자체에 사용자의 권한 정보나 서비스를 사용하기 위한 정보가 포함됩니다. JWT가 등장하기 전에는 웹에서 쿠키(cookie)와 세션(session)을 이용한 사용자 인증을 구현하는 경우가 많았는데요. JWT는 어떤 장점이 있어 많이들 사용하는 걸까요? 아마도 가장 큰 이유는 확장성에 있을 것 같은데요. JWT는 토큰 자체에 사용자의 정보가 저장되어 있어있기 때문에 서버 입장에서 토큰을 검증만 해주면 됩니다. JWT와 같은 토큰을 클라이언트에 저장하고 요청시 HTTP 헤더에 토큰을 첨부하는 것만으로도 단순하게 데이터를 요청하고 응답을 받아올 수 있게 되는 겁니다. 다..