2023년 12월 1일 10:00

목표 : RSA 256 알고리즘을 사용한 JWT 발급 ( Access Token, Refresh Token )

2023년 12월 1일 11:31 →

하지만 결국엔 RSA를 선택하는것과 동일

JWT 제공 클래스와 스프링시큐리티에 적용될 필터의 설정

기본적으로 로그인 같은 과정을 하면 Access Token과 Refresh Token을 모두 발급한다.이때, Refresh Token만 서버측의 DB에 저장하며, Refresh Token과 Access Token을 쿠키 혹은 웹스토리지에 저장한다.

2. 사용자가 인증이 필요한 API에 접근하고자 하면, 가장 먼저 토큰을 검사한다.이때, 토큰을 검사함과 동시에 각 경우에 대해서 토큰의 유효기간을 확인하여 재발급 여부를 결정한다.

case1 : access token과 refresh token 모두가 만료된 경우→ 에러 발생 (재 로그인하여 둘다 새로 발급)
case2 : access token은 만료됐지만, refresh token은 유효한 경우 →  refresh token을 검증하여 access token 재발급
case3 : access token은 유효하지만, refresh token은 만료된 경우 →  access token을 검증하여 refresh token 재발급
case4 : access token과 refresh token 모두가 유효한 경우 → 정상 처리
  1. 토큰의 유효시간 기준이 궁금합니다.

  2. 리프래시 토큰28일

  3. 엑세스토큰 하루 (1분 단위)

    1. (ex : 1달로 설정한다면)
    tokenValidTime = 60 * 30  * 1000L
    
  4. 정확한 요구사항 명세가 필요하다.

    1. 각 URL 패턴에 대해 특정 권한을 부여하거나 거부하는 요구사항이 있나?
    2. url 패턴중 어느 부분만 admin 권한이 필요한가?
      1. 캐시에 대한 부분만 인가? 아니면 또 추가할 부분이 있나
    3. 거부할 url 패턴이 있나? (cache 부분만 허락하면 될까?)

참조

https://koogood.tistory.com/25