[내일배움캠프Spring-47일차] Spring Boot에서 JWT를 이용한 인증 처리 구현

2025. 4. 23. 22:04·백엔드 부트캠프/TIL

 

✅ JWT 김수 설정 (JwtUtil.java)

JwtUtil 클래스는 개인 정보를 가지고 JWT 토큰을 생성, 검증, 추출하는 함수들을 관리합니다.

주요 기능:

  • Access Token 개시 (5분)
  • Refresh Token 개시 (10분)
  • JWT 유효성 검증
  • 검증 정보에서 개인 정보 추출
public String generateAccessToken(Long userId, String email, UserRole userRole) {
    return BEARER_PREFIX +
            Jwts.builder()
                    .setSubject(String.valueOf(userId))
                    .claim("email", email)
                    .claim("userRole", userRole)
                    .setExpiration(createExpireDate(ACCESS_TOKEN))
                    .signWith(signatureAlgorithm, createSigningKey(secretKey))
                    .compact();
}
  • secretKey는 application.yml 또는 .properties에서 입력됩니다.
  • 인증 불가 경우가 대단적으로 작성됩니다.

✅ 토큰 검증 필터 (JwtFilter.java)

JwtFilter는 시스템에 의해 사용자 요청을 처리할 때, 수정된 JWT가 전달되어오는지를 검증하고 검증 불가일 경우 에러를 리트레이터합니다.

if (bearerJwt == null) {
    httpResponse.sendError(HttpServletResponse.SC_BAD_REQUEST, "JWT 토큰이 필요합니다.");
    return;
}

if (!jwtUtil.isValidToken(token)) {
    httpResponse.sendError(HttpServletResponse.SC_UNAUTHORIZED, "유효하지 않은 JWT 토큰입니다.");
    return;
}

✅ 조건 설정:

  • /auth로 시작하는 건 인증 없이 pass
  • 그 외 URL은 검증

✅ 구성 패턴

  1. 로그인 후 JwtUtil을 통해 access/refresh token 발행
  2. 필터 JwtFilter로 모든 요청에 대해 token 유효성 검증
  3. 유효한 경우만 다음 처리로 이동

 

✅ 오늘의 회고

- 내일은 Redis 설정 후. Refresh 토큰 저장 등을 해볼 것이다 !

'백엔드 부트캠프 > TIL' 카테고리의 다른 글

[내일배움캠프Spring-49일차] Redis 를 적용해보자 !  (0) 2025.04.25
[내일배움캠프Spring-48일차] Security + JWT  (0) 2025.04.24
[내일배움캠프Spring-46일차] 필터 vs 인터셉터 vs AOP  (0) 2025.04.22
[내일배움캠프Spring-45일차] Spring 심화 주차 개인 과제  (1) 2025.04.21
[내일배움캠프Spring-44일차] TestCode  (0) 2025.04.18
'백엔드 부트캠프/TIL' 카테고리의 다른 글
  • [내일배움캠프Spring-49일차] Redis 를 적용해보자 !
  • [내일배움캠프Spring-48일차] Security + JWT
  • [내일배움캠프Spring-46일차] 필터 vs 인터셉터 vs AOP
  • [내일배움캠프Spring-45일차] Spring 심화 주차 개인 과제
sintory-04
sintory-04
🚀🚀🚀
  • sintory-04
    Sintory Dev Blog
    sintory-04
    글쓰기 관리
  • 전체
    오늘
    어제
    • 분류 전체보기 (289)
      • 백엔드 부트캠프 (111)
        • TIL (97)
        • WIL (0)
        • 문제풀이 (7)
        • 기타 (6)
      • 백엔드 부트캠프[사전캠프] (35)
        • TIL (16)
        • 문제풀이 (17)
        • 기타 (1)
      • Troubleshooting (11)
      • 코딩 공부 (118)
        • Java (28)
        • Baekjoon-Java (24)
        • Programmers-Java (40)
        • Spirngboot (11)
        • typescript (1)
        • JavaScript (6)
        • Spring 입문 (8)
      • 프로젝트 (8)
        • ToDoApp(FireBase) (3)
        • ToDoApp(Spring) (5)
      • 기타 (4)
  • 블로그 메뉴

    • 소개
    • Github
  • 최근 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
sintory-04
[내일배움캠프Spring-47일차] Spring Boot에서 JWT를 이용한 인증 처리 구현
상단으로

티스토리툴바