← 질문 목록
#7깊이 0
JWT를 세션 대신 쓸 때 무엇을 잃는가?
답변 연습
내 답변 적어보기접힘
이 브라우저에 자동 저장 · 0자
모범답안 확인하기내 답변 뒤에 열어보세요
자체 포함 JWT를 서버 상태 없이 검증하면 사용자별 즉시 통제력이 줄어든다. 권한을 회수하거나 계정을 막아도 이미 발급한 토큰은 만료 전까지 통과할 수 있다.
먼저 JWT는 토큰 형식이고 세션은 로그인 상태를 관리하는 방식이다. 둘은 완전한 반대말이 아니다. 서버 세션의 식별자를 JWT에 담을 수도 있고, JWT 식별자와 취소 상태를 서버에 보관할 수도 있다.
| 기준 | 서버 세션과 불투명 ID | 자체 포함 JWT의 로컬 검증 |
|---|---|---|
| 최신 권한 | 요청마다 서버 상태를 확인 가능 | 발급 때 넣은 claim이 만료까지 남음 |
| 개별 무효화 | 세션 한 건을 지움 | 취소 목록·introspection 같은 상태가 필요 |
| 서버 간 공유 | 세션 저장소나 라우팅 필요 | 검증 키·issuer·audience 정책 공유 필요 |
짧은 만료 시간과 리프레시 토큰 회전은 노출 시간을 줄인다. 개별 취소 목록이나 토큰 introspection을 더하면 즉시 차단할 수 있지만 매 요청에서 다시 서버 상태를 확인하게 된다. 서명 키 교체는 한 사용자만 정밀하게 끊는 수단이 아니다.
주의
JWT 서명은 claim을 숨기지 않는다. 암호화하지 않은 토큰의 내용은 가진 사람이 읽을 수 있다. 검증할 때는 서명뿐 아니라 허용 알고리즘, issuer, audience, 만료 시간을 함께 확인한다.
선택 기준은 서버 수보다 통제 시점이다. 여러 서비스가 중앙 조회 없이 같은 claim을 검증해야 하는지, 권한 변경을 몇 분 안에 반영해야 하는지, 토큰 탈취 때 어디까지 끊을지를 먼저 정한다.