JWT의 Stateless 인증은 서버가 로그인 상태나 발급한 토큰 자체를 저장하지 않고,
매 요청마다 들어온 JWT를 서명과 클레임 규칙으로 검증해서 인증/인가를 수행하는 방식이다.
Redis 같은 저장소가 없어도 동작하지만, 대신 즉시 로그아웃(강제 폐기) 같은 기능은 별도 설계가 필요하다.
Stateless에서 “서버가 저장하지 않는다”는 건 보통 “세션/토큰의 유효 목록”을 유지하지 않는다는 뜻이다.
다만 서버는 JWT를 검증하기 위한 키(SecretKey)와 검증 정책(허용 알고리즘, 필수 클레임 등)은 반드시 가지고 있어야 하므로 서버가 아무 정보도 없는 상태는 아니다.
JWT는 일반적으로 Header.Payload,Signature 형태로 전달되고,
서버는 이 Signature가 “서버가 신뢰하는 키로 만들어진 값인지” 검증해서 토큰 위변조 여부를 판단한다.
서명이 유효하면 Payload(Claims)를 읽고, exp(만료), sub(누구인지), iat(발급 시간) 같은 클레임이 서비스 정책에 맞는지 추가로 검사해 최종적으로 요청을 받아들일지 결정한다.
JWT는 편리하지만, 한 번 발급된 토큰은 기본적으로 만료(exp) 전까지 유효하므로
“로그아웃 즉시 차단”이나 탈취 토큰 강제 무효화”는 stateless만으로 어렵다.