목록2024/06/10 (2)
개발놀이터
JWT를 이용해서 인증을 한다면 중복 로그인에 대한 문제를 반드시 겪게 되는 것 같습니다. 로그인을 한 사용자가 다시 로그인을 한다면 이 로그인을 막아야할텐데 (구현은 stateful하게 하지만) stateless인 JWT 특성상 인증과 관련된 부분이 서버와 격리되어있어 서버에서 처리를 하지 못하는 상황이 발생합니다. 이미 발급된 access token (이하 AT) 를 어떻게 제어할 수 없다는 문제가 발생하죠. JWT 중복로그인 방지이를 해결하기위해 중간 단계를 거칠 수 밖에 없었습니다. 모든 코드를 다 보여드리기엔 양이 많아 개요만 포스팅하려고 합니다. 먼저 일반적인 JWT는 이렇게 인증을 거칩니다. 이건 JWT를 아시는 분들에겐 친숙한 흐름도일 것입니다. 하지만 로그인을 한 사용자가 또 ..
보통 많은 애플리케이션이 JWT를 이용해서 인증을 하고있다고합니다. JWT를 한글이던 영어던 구글링을 해보면 모두같이 JWT를 stateless라고 소개하고 있습니다. JWT를 쓰고 있던 와중 갑자기 문득 생각이 들었습니다. 이게 stateless야? JWT는 정말 stateless인가?왜 이런 의문이 들었냐면 access token (이하 AT)이 만료되는 순간 refresh token (이하 RT)를 확인해서 다시 AT를 재발급 하는 과정에서 의문이 들었습니다. RT를 확인할 때 우리는 이 사용자와 관련된 즉, 이 사용자가 로그인할 때 만들었던 RT를 찾기위해 결국 사용자의 정보를 가지고 RT를 검색합니다. 이 RT는 데이터베이스에 오랜시간 저장되어있으면서 사용자에게 계속 AT를 발급해주죠. ..