사용자 정보 변경 시 jwt 재발급
1183
작성한 질문수 1
안녕하세요. jwt를 사용하다가 jwt의 subject는 email, 그 외에 사용자의 닉네임과 같은 정보를 claims 에 넣었습니다. 그런데 이렇게 사용자의 정보가 변경될 때 특히 email이 변경될 때는 토큰을 재발급 받아줘야 사용 가능한 토큰이 되는데 만약 claims에 없는 비밀번호와 같은 보안과 관련된 정보를 변경했을 때는 새 토큰을 발급 받아도 사용자가 이전에 발급 받은 토큰으로 서비스에 접근할 때 어떻게 불가능한 토큰이라고 알 수 있는지 모르겠습니다.
토큰의 유효성을 검사하는 코드에서 db에서 사용자의 정보 수정일 이전 발행된 토큰이면 유효하지 않은 토큰이라고 하는 편이 나을지 고민입니다. 만약 이렇게 한다면 사용자의 정보를 수정할 때마다 새로운 토큰을 발급해줘야 된다는 점이 신경쓰입니다.
Date date = Date.from(user.getModifiedDate().atZone(ZoneId.systemDefault()).toInstant());
// 토큰 발행일이 유저 데이터 수정일 이전이면 유효하지 않은 토큰임
if(claims.getBody().getIssuedAt().before(date)) {
throw new CustomException(ErrorCode.VALIDATION_ERROR, "유효하지 않은 토큰입니다.");
}매번 새로운 토큰을 발급받게 하는 게 좋은 방법일까요?
답변 2
1
안녕하세요, 인프런 AI 인턴이에요.
사용자의 정보가 변경될 때 토큰을 재발급 받아야 하는 경우를 고민하시는군요. 그리고 보안과 관련된 정보가 변경될 때 이전에 발급받은 토큰이 불가능한지에 대한 의문이 있으신 것 같습니다.
일반적으로 JWT 토큰은 한 번 발급되면 수정할 수 없으며 유효기간이 만료되거나 토큰의 서명이 변경되지 않는 이상 계속해서 사용 가능합니다. 따라서 토큰의 정보가 변경되는 경우에는 새로운 토큰을 발급받는 것이 일반적입니다.
저는 사용자의 정보가 변경될 때마다 새로운 토큰을 발급받는 것이 좋은 방법이라고 생각합니다. 사용자의 정보가 변경되면 변경된 정보를 포함한 새로운 토큰을 발급받아야 하기 때문입니다. 이렇게 하면 이전에 발급받은 토큰이 더 이상 유효하지 않음을 알 수 있습니다.
따라서, 사용자의 정보가 수정될 때마다 새로운 토큰을 발급받는 것을 권장드립니다.
더 자세한 내용이 필요하시다면, JWT의 구체적인 사용 방법과 보안에 대한 고려 사항을 확인해보시는 것을 추천드립니다.
추가적인 도움이 필요하시다면 언제든지 물어보세요! 좋은 하루 되세요.
JWT를 구현한 다음 이 API를 호출해서 사용하는 것은 프론트엔드 쪽에서 하는 역할인가요?
0
98
1
Jwt쓰면 스프링시큐리티는 필수적으로 사용해야하나요?
0
401
1
13:23 system.out 출력문이 다르게 나옵니다.
0
130
1
수료증 문의
0
228
2
9분대에 질문이 있습니다 !
0
115
1
password 비교를 하지 않았는데 어떻게 인증이 통과된 건가요?
0
321
1
이전 강의 참고하라는 말씀
0
253
1
강의 실습하다가 막히는 분들 참고(2024년8월 기준)
2
1116
2
구글 소셜 로그인 302
0
201
1
오류 문의 _ org.springframework.orm.jpa.JpaSystemException: could not deserialize
1
585
1
[자바] 시큐리티 Config 참고
13
953
1
이론강의
0
280
1
SpringSecurity JWT 로그인 URL 2개 설정하는 방법
0
488
1
2024.06기준) 최근 SecurityConfig 설정 문의
0
922
3
구글 로그인시 authentication이 null 값이라고 에러가 발생합니다.
0
678
2
특정 url필터 거는 방법 이슈
0
422
1
강사님께서 말씀하시는 시큐리티세션이 SecurityContext인가요?
0
279
1
25강 마지막 테스트에서 오류
1
1044
2
jwt를 저장하는 위치에 궁금한 점이 있습니다.
0
298
1
mustache를 사용하지 않고 thymeleaf를 사용하려고 하는데
0
697
1
세션 인증방식이 REST 원칙에 위배되는 건가요?
0
342
1
jwt와 실제데이터의 관계
1
246
1
jwt 와 세션ID의 관계
1
313
1
SecurityConfig에서 세션 설정, 인가 설정
0
422
1





