JWT로 로그인 붙이는 중인데 개념이 하나 안 잡혀요. 로그인하면 액세스 토큰 발급해서 그걸로 인증하잖아요. 근데 예제들 보면 죄다 리프레시 토큰이라는 걸 같이 발급하더라고요.


솔직히 이해가 안 가는 게, 액세스 토큰 만료 시간을 그냥 넉넉하게 한 달로 잡아버리면 리프레시 토큰 필요 없는 거 아닌가요? 왜 굳이 두 개로 나눠서 복잡하게 만드는 건지 모르겠어요.


제가 이해한 걸 정리하면 이런데 맞나 좀 봐주세요.


액세스 토큰 = 짧게(15분~1시간), 매 요청마다 사용
리프레시 토큰 = 길게(2주~), 액세스 만료되면 재발급용


궁금한 건 이거예요. 액세스 토큰을 짧게 잡는 이유가 탈취당해도 금방 만료되니까 안전하다 이건 알겠는데, 그럼 리프레시 토큰이 탈취당하면 그게 더 위험한 거 아니에요? 유효기간도 길고 그걸로 새 토큰 계속 뽑을 수 있는 거잖아요. 그리고 리프레시 토큰은 보통 어디에 저장하나요? 그냥 로컬스토리지에 둬도 되는지, 아니면 DB에 따로 저장해두고 검증해야 하는지도 헷갈리네요. 실무에서 로그아웃 처리는 또 어떻게 하는지 궁금합니다.