jwt payload 와 cookie의 httponly에 넣을 내용 기준 정리
jwt
JWT Payload에 넣어야 할 것 (Access Token 기준)
- 식별자 (sub): 사용자 ID (Login ID) 또는 DB PK. (로그 남길 때 식별 용도)
- 권한 정보 (roles): ROLE_ADMIN, ROLE_USER 등. (DB 조회 없이 Security Filter 통과 용도)
- UI 표시용 정보 (nickname, avatarUrl): "반갑습니다, 홍길동님"을 띄우기 위함. (별도 API 호출 방지)
- 표준 클레임 (iat, exp): 발급 시각, 만료 시각.
Refresh Token Payload 권장 기준
- 식별자 (sub): 누구의 토큰인지 알아야 하므로 필수.
- 만료 시간 (exp): 2주 등 긴 시간.
- 고유 ID : 토큰 자체의 고유 ID. 나중에 Redis 등에서 특정 토큰만 콕 집어서 폐기할 때 유용.
Payload 절대 금지 항목
- 비밀번호, 주민등록번호, 전화번호, 집 주소 (개인정보보호법 위반 소지 및 보안 취약)
Cookie
HttpOnly Cookie에 넣어야 할 것
- Refresh Token 문자열: eyJhbGciOiJIUzI1Ni... 로 시작하는 긴 문자열 전체.
- Device ID: 특정 기기를 식별해야 하는 경우.